Điện thoại/ Zalo
0389934723
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,pathpath
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 danhpath
được gọi. handle ở đây là callback function Vớireq
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é.