NodeJS dù sao vẫn hướng đến cho BackEnd và để dễ hiểu nhất thì chúng ta hãy bắt đầu tạo ra một ứng dụng là http server. Trong bài này Dũng sẽ cùng các bạn tạo ra một ứng dụng máy chủ trả về html cho người dùng.

Khởi tạo dự án

Chúng ta chỉ đơn giản là tạo một thư mục first-application là xong.
Tiếp theo chúng ta hãy tạo một tập tin có tên main.js trong thư mục first-application.

Khởi tạo server

Chúng ta có thể khởi tạo một NodeJS http với chỉ một vài dòng lệnh đơn giản như sau:

const http = require('http');

const listener = function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello TechMaster!');
};

const httpServer = http.createServer(listener);

httpServer.listen(8080);

console.log("server is listining on port 8080");

Trong đoạn mã này chúng ta có:

  1. Khởi tạo một đối tượng http từ module http, một module core của node js, đây là một ứng dụng của bridge design pattern.
  2. Khởi tạo một đối tượng listener để lắng nghe yêu cầu gửi đến, đây chính là một ứng dụng của observer design pattern.
  3. Khởi tạo một đối tượng httpServer từ http thông qua hàm createServer với tham số là đối tượng listener, đây là một ứng dụng của factory design pattern.
  4. Lắng nghe yêu cầu gửi đến httpServer từ cổng 8080.
    Ở đây chúng ta đang dùng từ khoá const thay vì var hay let để nói rằng các biến sẽ được khởi tạo duy nhất và không thể gán lại.
    Như bạn thấy dù là một đoạn chương trình rất nhỏ, tưởng chừng như đơn giản nhưng lại chứa được rất nhiều kiến thức trong đó. Nên mặc dù NodeJS có đơn giản hơn các framework khác lúc đầu nhưng về hàm lượng kiến thức thì cũng không ít. Vậy nên thay vì giới thiệu một loạt kiến thức, mình sẽ giới thiệu đến các bạn một cách từ từ để chúng ta hiểu sâu và hạn chế gây ra lỗi.

Khởi chạy server

Chúng ta chỉ đơn giản là di chuyển vào thư mục first-application và chạy lệnh:

node main.js

Một dòng log sẽ in ra: server is listining on port 8080 nghĩa là một server đã được khởi tạo và đang lắng nghe cồng 8080.
Bạn có thể truy cập vào địa chỉ http://localhost:8080/ và sẽ thấy dòng chữ Hello TechMaster! hiện ra.

Trả về HTML

Bạn cũng có thể trả về HTML thay vì text bằng cách thay đổi mã nguồn như sau:

const http = require('http');

const listener = function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<h1>Hello TechMaster!</h1>');
};

const httpServer = http.createServer(listener);

httpServer.listen(8080);

console.log("server is listining on port 8080");

Ở đây chúng ta thay đổi kiểu trả về thành text/html và bổ sung thêm thẻ h1 bọc lấy nội dung.
Kết quả khi khởi động lại máy chủ và truy cập lại http://localhost:8080/ chúng ta sẽ nhận được:

Tổng kết

Như vậy chúng ta đã cùng nhau khởi tạo một ứng dụng http server sử dụng NodeJS.

Sách tham khảo

Để biết thêm về observer design pattern, bạn có thể tham khảo cuốn làm chủ các mẫu thiết kế kinh điển trong lập trình nhé. Đừng quên nhập mã Tech10 để được giảm giá 10% nhé.


Cám ơn bạn đã quan tâm đến bài viết|video này. Để nhận được thêm các kiến thức bổ ích bạn có thể:

  1. Đọc các bài viết của TechMaster trên facebook: https://www.facebook.com/techmastervn
  2. Xem các video của TechMaster qua Youtube: https://www.youtube.com/@TechMasterVietnam nếu bạn thấy video/bài viết hay bạn có thể theo dõi kênh của TechMaster để nhận được thông báo về các video mới nhất nhé.
  3. Chat với techmaster qua Discord: https://discord.gg/yQjRTFXb7a