Học lập trình Nodejs cơ bản trong 1 ngày – Miễn phí – VNTALKING

Javascript hiện đang là ngôn ngữ lập trình phổ biến nhất hiện nay. Bạn có nghe đến Nodejs bao giờ chưa? Để học lập trình Nodejs, trước tiên bạn cần phải biết Javascript. Tại sao lại vậy chứ? Phía dưới bài viết, mình sẽ giải thích lý do.

Về phía backend, Nodejs đang nổi lên như một ngôi sao 5 cánh sáng. Với rất nhiều ưu điểm, nên nhiều công ty lớn cũng đã sử dụng Nodejs cho loại sản phẩm của mình. Điển hình như : Netflix, PayPal, eBay …
Khi mình mới mở màn học lập trình Nodejs, mình gặp rất nhiều khó khăn vất vả vì trên mạng có rất ít tài liệu hướng dẫn. Trong khi mình xuất thân từ lập trình Android, nên tư tưởng lập trình hướng sự kiện của nodejs đã khiến mình hoa mắt chóng mặt .

Do đó để giúp các bạn có thể nhanh chóng tiếp cận được với Nodejs, bài viết này mình đúc kết những kiến thức cơ bản nhất về Nodejs. Nodejs là gì? Tại sao lại chọn nodejs để xây dựng ứng dụng?

Sách học lập trình Node.js thật đơn giảnGóc quảng cáo! Bọn mình đã hoàn thành một cuốn sách học lập trình Node.js đặc biệt dành cho bạn đây. Với cuốn sách này bạn sẽ làm chủ Node.js bằng cách thực hành một dự án từ A-Z. Ngại gì mà không thử!
☛ Đọc ngay Bọn mình đã hoàn thành xong một cuốn sách học lập trình Node. js đặc biệt quan trọng dành cho bạn đây. Với cuốn sách này bạn sẽ làm chủ Node. js bằng cách thực hành thực tế một dự án Bất Động Sản từ A-Z. Ngại gì mà không thử !

Khóa học lập trình Nodejs cơ bản gồm :

Khóa học này được thiết kế dành cho những bạn mới bắt đầu học lập trình. Do vậy, các kiến thức trong khóa học sẽ cực kỳ cơ bản, các bạn sẽ rất dễ để tiếp cận.

Sau khi triển khai xong khóa học này, mình tin rằng bạn hoàn toàn có thể tự tin kiến thiết xây dựng cho mình một ứng dụng web hoành tránh rồi .
Chúng ta khởi đầu thôi !

học lập trình Node.js cho người mới

# Nodejs là gì ?

Nodejs là một runtime đa nền tảng dành cho server chạy trên V8 JavaScript engine ( là javascript engine nổi tiếng của Chrome ). V8 là trái tim của Nodejs để thực thi những mã Javascipt .
Javascript thực chất cũng chỉ một ngôn từ lập trình. Nó chạy tốt trên trình duyệt sử dụng V8 engine thì không có lý gì lại không ngon trên server cả .
Nodejs là runtime thực thi mã theo quy mô event-driven, non-blocking IO. Với nhiều lập trình viên, quy mô event-driven khởi đầu hoàn toàn có thể gây khó hiểu và tiếp cận. Tuy nhiên, quy mô này lại giải quyết và xử lý rất tốt với những ứng dụng web có nhiều liên kết theo thời hạn thực .

Đặc điểm của nodejs

Tuy nhiên NodeJs không phải là một thứ sinh ra để đánh đổ hàng loạt nền tảng web trước đó. Nodejs chỉ là một giải pháp thích hợp để xử lý một nhu yếu nhất định .
Nếu bạn dùng NodeJs để kiến thiết xây dựng những ứng dụng nặng về thống kê giám sát như : Ứng dụng convert video, ứng dụng giải quyết và xử lý ảnh trực tuyến … là bạn đã từ bỏ những đặc thù tinh túy của nodejs rồi .
NodeJs chỉ thực sự mạnh ở những ứng dụng cần vận tốc nhanh, năng lực lan rộng ra. Vì Nodejs có năng lực xử lí một lượng rất lớn những request với vận tốc nhanh .

>> Có ích cho bạn: Thủ thuật tối ưu code Javascript

# NPM là gì ?

Nói đến Nodejs, tất cả chúng ta không hề không nhắc đến npm. Npm ( Node Package Manager ) là một công cụ để tạo và quản trị thư viện cho node.js. Khi bạn thiết lập Nodejs thì đồng nghĩa Npm cũng đã được setup .
Npm lầ gì
Có một chút ít so sánh nhẹ, npm cũng giống như Gradle, Maven trong Android. Tất cả thư viện / modules sẽ được quản trị tập trung chuyên sâu ở một nơi .

Các thư viện sẽ được đưa lên một máy chủ trung gian. Lúc này dự án của chúng ta sẽ không cần phải copy thủ công. Thay vào đó, npm sẽ tự động download từ máy chủ về dự án của bạn.

Đến thời gian của bài viết, npm có khoảng chừng 210,000 modules, tha hồ cho bạn lựa chọn cho dự án Bất Động Sản của mình .

# Những hiểu nhầm khi học lập trình Nodejs

  • Thứ nhất, Nodejs không phải là một ngôn ngữ lập trình. Bản chất Nodejs là một JavaScript runtime
  • Thứ hai, Nodejs không hỗ trợ đa luồng, nó là một máy chủ đơn luồng.
  • Cuối cùng, chính vì Nodejs không phải là ngôn ngữ lập trình, nên để học được Nodejs thì bạn cần phải biết về Javascript, kỹ thuật lập trình, một số giao thức…

# Những nguyên do để học lập trình Nodejs

  • Thứ nhất: Nodejs sử dụng Javascript là ngôn ngữ để xây dựng ứng dụng. Đây là một ngôn ngữ rất phổ biến cho lập trình front-end, ứng dụng client. Nếu bạn đã biết sử dụng javascript thì đây là một lợi thế cực lớn. Khi đó bạn sẽ chỉ cần sử dụng một ngôn ngữ lập trình cho từ client đến server.
  • Thứ hai: Nodejs chạy đa nền tảng phía Server(Mac – Window – Linux đều được), sử dụng kiến trúc hướng sự kiện Event-driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
  • Thứ ba: Cộng đồng Nodejs đang rất phát triển, thư viện miễn phí cực nhiều.

# Xây dựng ứng dụng tiên phong với Nodejs

Ứng dụng tiên phong này, tất cả chúng ta sẽ tạo một tiện ích nho nhỏ đó là xác lập vị trí của bạn trải qua địa chỉ IP .

var http = require('http');

var options = {  
    hostname: 'ipinfo.io',
    port: 80,
    path: '/json',
    method: 'GET'
};

var req = http.request(options, function(res) {  
    var body = '';

    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        body += chunk;
    });

    res.on('end', function() {
        var json = JSON.parse(body);
        console.log('Your location: ' + json.city + ', ' + json.region);
    });
});

req.end(); 

Bạn copy đoạn code rồi paste vào một file mới, đặt tên là “ index.js ”. Sau đó, từ command line, bạn gõ lệnh sau :

node index.js

Kết quả thu được như sau:
demo-ung-dung-nodejs

Vì đoạn mã demo trên, mình không sử dụng bất kỳ thư viện 3 rd party nào nên không cần phải có file package.json .
Phần tiếp theo mình sẽ lý giải đơn cử về package.json. Đừng hấp tấp vội vàng nhé, ngồi nhâm nhi tách cafe nào !

>> Có thể bạn cần: Cài đặt NodeJs trên Window, Ubuntu

# Quản lý thông tin modules trong dự án Bất Động Sản Nodejs

Về cơ bản, Nodejs sẽ không là gì cả nếu không có những modules. Có hai loại modules : Module built-in và module 3 rd – party .
Có những modules cơ bản như : http, fs, os, path … sẽ được tích hợp sẵn trong Nodejs khi bạn thiết lập .
Còn những modules kiểu 3 rd – party thì khi nào bạn cần thì sẽ gọi. Tất cả những module 3 rd – party sẽ được quản trị trải qua file package.json ( File này có vai trò giống như build.gradle trong Android vậy ) .
Đây là một ví dụ về package.json

{
  "name": "node-js-sample",
  "version": "0.2.0",
  "description": "A sample Node.js app using Express 4",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.13.3"
  },
  "engines": {
    "node": "4.0.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/heroku/node-js-sample"
  },
  "keywords": [
    "node",
    "heroku",
    "express"
  ],
  "author": "Mark Pundsack",
  "contributors": [
    "Zeke Sikelianos <[email protected]> (http://zeke.sikelianos.com)"
  ],
  "license": "MIT"
}

Như bạn thấy trong file package.json này, dự án Bất Động Sản sử dụng một module 3 rd – party là : ” express ”. Để setup tổng thể những module được khai báo trong package.json, bạn đơn thuần gõ lệnh sau :

npm install

Nếu bạn tạo mới dự án Bất Động Sản từ khởi đầu, bạn hoàn toàn có thể tạo package.json bằng lệnh :

npm init

Sau đó nhập thông tin như nhu yếu trong command line. Như bên dưới :

$ npm init

This utility will walk you through creating a package.json file.  
It only covers the most common items, and tries to guess sane defaults.

See `npm help json` for definitive documentation on these fields  
and exactly what they do.

Use `npm install  --save` afterwards to install a package and  
save it as a dependency in the package.json file.

Press ^C at any time to quit.  
name: (twenty)  
version: (0.0.1)  
description: Locates the city/region of a given URL/IP address  
entry point: (index.js)  
test command:  
git repository:  
keywords:  
license: (MIT)  
About to write to /Users/scott/projects/twenty/package.json:

{
  "name": "twenty",
  "version": "0.0.1",
  "description": "Locates the city/region of a given URL/IP address",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Scott Robinson <[email protected]> (http://stackabuse.com)",
  "license": "MIT"
}


Is this ok? (yes) yes  

# Tạm kết

Như vậy, mình đã chia sẻ những kiến cơ bản nhất về Nodejs. Mình biết rằng, khi mới bắt đầu nhập môn lập trình Nodejs, bạn sẽ gặp khó khăn nhất định.

Nhưng đừng sợ hãi, mình sẽ cùng sát cánh với bạn qua những bài viết trên VNTALKING .
Nhớ đón đọc những bài viết tiếp theo của mình về Nodejs nhé !