Node.js Tutorial: Phần 4: Express framework

Giới thiệu Express Framework

Express là một web application framework for nodejs, nó cung cấp cho chúng những rất nhiều tính năng mạnh mẽ trên nền tảng web. Express rất dễ dàng để phát triển các ứng dụng nhanh dựa trên Node.js cho các ứng dụng Web. Express hỗ trợ các phương thức HTTP và middleware tạo ra 1 API rất mạnh mẽ và sử dụng dễ dàng hơn. Khi mới tiếp cận với Express mình thực sự bị cuốn hút bởi các API của nó, từ cách sử dụng route, template, đều khá dễ tùy chọn và làm việc. Các tính năng của Express framework phải kể đến như:

  • Cho phép thiết lập các lớp trung gian để trả về các HTTP request.
  • Định nghĩa routing có thể được sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL.
  • Cho phép trả về các trang HTML dựa vào các tham số truyền vào đến template.

Cài đặt Express Framework

Để cài đặt Express framework sử dụng npm như sau:

npm install express --save

Ngoài ra bạn cũng nên cài mốt số module quan trọng đi cùng với express như:

  • body-parser - Đây là một lớp trung gian node.js để xử lí JSON, dự liệu thô, text và mã hóa URL.
  • cookie-parser- Chuyển đổi header của Cookie và phân bố đến các req.cookies
  • multer - Đây là một thành phần trung gian trong node.js để xử lí phần multipart/form-data.
npm install body-parser --save
npm install cookie-parser --save
npm install multer --save

Ứng dụng đầu tiên sử dụng Express

Dưới đây là một ví dụ rất cơ bản của Express. Ứng dụng này trả về Hello World ở trang chính, đối với các đường dẫn khác, nó sẽ trả về một 404 Not Found. Tạo server.js có nội dung sau:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
   res.send('Hello World');
});

var server = app.listen(3000, function () {
  var host = server.address().address
  var port = server.address().port
  console.log("Ung dung Node.js dang hoat dong tai dia chi: http://%s:%s", host, port)
});

Chạy server.js.

node server.js

Bây giờ bạn mở http://127.0.0.1:3000/ trong bất kỳ trình duyệt nào và xem kết quả nhé.

Request & response trong Expresss

Express sử dụng một hàm callback có các tham số là các đối tượng request và response.

app.get('/', function (req, res) {
    //
})
  • Request - Biểu diễn một HTTP request và có các thuộc tính cho các request như các chuỗi truy vấn, tham số, body, HTTP header và những phần khác.
  • Response - Biểu diễn một HTTP response được ứng dụng Express gửi đi khi nó nhận về một HTTP request.

Route cơ bản trong Express

Trong Express, router được tích hợp sẵn và dễ dàng sử dụng, dưới đây là demo cơ bản về route của Express nhé. Mình sẽ có một bài viết chi tiết hơn về route trong Express sau 😄

var express = require('express');
var app = express();

// Phuong thuc get() phan hoi mot GET Request
app.get('/', function (req, res) {
   console.log("GET Request");
   res.send('Hello GET');
});


// Phuong thuc post() phan hoi mot POST Request
app.post('/', function (req, res) {
   console.log("POST Request");
   res.send('Hello POST');
});

// Phuong thuc delete() phan hoi mot DELETE Request.
app.delete('/delete, function (req, res) {
   console.log("DELETE Request");
   res.send('Hello DELETE');
});


// Phuong thuc nay phan hoi mot GET Request có dạng abcd, abxcd, ab123cd, ...
app.get('/ab*cd', function(req, res) {   
   console.log("GET request /ab*cd");
   res.send('Page Pattern Match');
});

var server = app.listen(3000, function () {
  var host = server.address().address
  var port = server.address().port

  console.log("Ung dung Node.js dang hoat dong tai dia chi: http://%s:%s", host, port
});

Các bạn chạy file này với lệnh:

node server.js

Bây giờ, bạn có thể thử các Request khác tại địa chỉ http://127.0.0.1:3000 để xem kết quả tạo bởi server.js như thế nào nhé.

File tĩnh trong Express

Express cung cấp tiện ích express.static để phục vụ cho các file tĩnh như hình ảnh, css, js, ...Về cơ bản, bạn chỉ cần truyền tên thư mục nơi bạn giữ các file này, express.static sẽ sử dụng file đó một cách trực tiếp. Giả sử ứng dụng của bạn có cấu trúc như sau:

node_modules
server.js
public/
public/images
public/images/logo.png

Sử dụng Express static:

app.use(express.static('public'));

Bây giờ bạn có thể truy cập hình ảnh bằng cách vào địa chỉ http://127.0.0.1:3000/images/logo.png để xem kết quả.

Tổng kết

Bài viết này mình đã giới thiệu sơ lược về Expressjs. Sang bài tiếp mình sẽ tiếp tục giới thiệu tới các bạn route trong express nhé.