DANH MỤC: EXPRESS FRAMEWORK

Bài 3: Route trong Express framework


Bài trước mình đã hướng dẫn mọi người chạy chương trình đầu tiên với express framwork rồi. Và trong bài đó mình có nhắc đên một khái niệm router, nhưng chưa trình bày về nó. Bài này mình sẽ giới thiệu đến mọi người về router trong Express framwork.

1, Router trong express framwork là gì?

- Router trong express framwork là một bộ định tuyến giúp cho chúng ta định danh ra các url và hành động kèm theo nó.

VD: như chúng ta định danh có url có param lien-he.html thì thực hiện hành động trả về view liên hệ,..

-Và để sử dụng router trong express framwork thì các bạn sử dụng cú pháp:

app.method(path, handle);

Trong đó:

  • app là biến mà khi chúng ta khởi tạo express framework (xem bài trước).
  • method là một trong các dạng http method sau: get,post,put,delete,head,path
  • path là thành phần phía sau domain mà chúng ta muốn xác định.
  • handle là hành động sẽ thực thi khi danh path được gọi. handle ở đây là callback function Với req là biến chứa tất cả các thông số request mà người dùng gửi lên và res là biến chứa tất cả các thông số mà server trả về cho client.

2, Các ví dụ.

Router GET method.

-Router này chỉ nhận phương thức get đến url.

VD: trả về chữ 'hello world' khi người dùng get request vào url có param là say.

app.get('/say', function (req, res) {
    res.send('hello world');
});

Router POST method.

-Router này chỉ nhận phương thức post.

VD: Trả về chữ 'hello world' khi người dùng gửi post request đến url có param là say.

app.post('/say', function (req, res) {
    res.send('hello world');
});

Các method khác.

-Đối với các method khác cung làm tương tự như hai method get và post. Chỉ việc đổi tên method thành method mà bạn muốn nhận.

VD:

// put method
app.put('/say', function (req, res) {
    res.send('hello world');
});
// delete method
app.delete('/say', function (req, res) {
    res.send('hello world');
});

Nhận tất cả các method.

-Trong trường hợp các bạn muốn nhận tất cả các method thì chỉ cần đổi method thành all là ứng dụng sẽ nhận tất cả các method.

VD:

app.all('/say', function (req, res) {
    res.send('hello world');
});

Regular expression trong router.

-Trong router của express framwork có hỗ trợ chúng ta regular expression. Về phần regular express thì nó giống như phần regular expression trong PHP nên mình không nhắc lại lý thuyết nữa (bạn nào cần có thể xem lại tại đây).

VD:

- Bạn muốn chấp nhận path abc hoặc abcd thì router sẽ có dạng như sau:

app.get('/abcd?', function (req, res) {
  res.send('khớp');
})

- Bạn muốn path dạng abcd hoặc abcdd hoặc abcddd,... thì router sẽ có dạng như sau:

app.get('/abcd+', function (req, res) {
  res.send('khớp');
})

-Bạn muốn path dạng abcd hoặc abcxd hoặc abctoidicoded,... thì router sẽ có dạng như sau:

app.get('/abc*d', function (req, res) {
  res.send('khớp');
});

....

Truyền tham số vào router.

-Để truyền tham số vào router chúng ta sẽ sử dụng dấu : và tên biến vào path.

VD: Truyền tham số name vào router.

app.get('/user/:name', function (req,res) {
	res.send('User name có tên: '+ req.params.name);
});

3, Lời kết.

-Còn một số phần liên quan đến middleware trong router nữa mà mình chưa giới thiệu với mọi người về middleware trong express framework, nên bài này chúng ta tạm dừng tại đây đã nhé.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia