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

3
Dịch vụ dạy kèm gia sư lập trình

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 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 sản phẩm của mình. Điển hình như: Netflix, PayPal, eBay…

Khi mình mới bắt đầu học lập trình Nodejs, mình gặp rất nhiều khó khăn 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ản
Gó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

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 hoàn thành khóa học này, mình tin rằng bạn có thể tự tin xây dựng cho mình một ứng dụng web hoành tránh rồi.

Chúng ta bắt đầ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 các mã Javascipt.

Javascript bản chất cũng chỉ một ngôn ngữ 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 mô hình event-driven, non-blocking IO.  Với nhiều lập trình viên, mô hình event-driven ban đầu có thể gây khó hiểu và tiếp cận. Tuy nhiên, mô hình này lại xử lý rất tốt với các ứng dụng web có nhiều kết nối theo thời gian thực.

Đặc điểm của nodejs

Tuy nhiên NodeJs không phải là một thứ sinh ra để đánh đổ toàn bộ nền tảng web trước đó. Nodejs chỉ là một giải pháp thích hợp để giải quyết một nhu cầu nhất định.

Nếu bạn dùng NodeJs để xây dựng những ứng dụng nặng về tính toán như: Ứng dụng convert video, ứng dụng xử lý ảnh online…là bạn đã từ bỏ những đặc điểm tinh túy của nodejs rồi.

NodeJs chỉ thực sự mạnh ở các ứng dụng cần tốc độ nhanh, khả năng mở rộng. Vì Nodejs có  khả năng xử lí một lượng rất lớn các request với tốc độ nhanh.

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

#NPM là gì?

Nói đến Nodejs, chúng ta không thể không nhắc đến npm. Npm(Node Package Manager) là một công cụ để tạo và quản lý thư viện cho node.js. Khi bạn cài đặt Nodejs thì đồng nghĩa Npm cũng đã được cài đặt.

Npm lầ gì
Hiện Npm có khoảng 210,000 modules đủ loại.

Có một chú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 lý tập trung ở 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 điểm của bài viết, npm có khoảng 210,000 modules, tha hồ cho bạn lựa chọn cho dự á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 lý 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 đầu tiên với Nodejs

Ứng dụng đầu tiên này, chúng ta sẽ tạo một tiện ích nho nhỏ đó là xác định vị trí của bạn thông 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 3rd party nào nên không cần phải có file package.json.

Phần tiếp theo mình sẽ giải thích cụ thể về package.json. Đừng 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 Nodejs

Về cơ bản, Nodejs sẽ không là gì cả nếu không có các modules. Có hai loại modules: Module built-in và module 3rd-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 cài đặt.

Còn những modules kiểu 3rd-party thì khi nào bạn cần thì sẽ gọi. Tất cả những module 3rd-party sẽ được quản lý thông 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 <zeke@sikelianos.com> (http://zeke.sikelianos.com)"
  ],
  "license": "MIT"
}

Như bạn thấy trong file package.json này, dự án sử dụng một module 3rd-party là: ” express”. Để cài đặt tất cả các module được khai báo trong package.json, bạn đơn giản gõ lệnh sau:

npm install

Nếu bạn tạo mới dự án từ ban đầu, bạn có thể tạo package.json bằng lệnh:

npm init

Sau đó nhập thông tin như yêu cầ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 <pkg> --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 <scott@stackabuse.com> (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 hoang mang, mình sẽ cùng đồng hành với bạn qua các bài viết trên VNTALKING.

Nhớ đón đọc các bài viết tiếp theo của mình về Nodejs nhé!

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcThêm nút Loadmore vào RecyclerView trong Android
Bài tiếp theoCài đặt NodeJs trên Window, Ubuntu chi tiết
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

3
Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Mới nhất Cũ nhất Nhiều voted nhất
Thông báo
Nguyễn Thiện
Guest
Nguyễn Thiện

Em cảm ơn Bro. Sơn Dương rất nhiều.

Hoang
Guest
Hoang

tks b nhiều nha