06/04/2021, 14:50

Xây dựng URL trong Express - Express Framework

Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về cách xây dựng URL trong Express, phần này sẽ phụ thuộc rất nhiều về phần Routes trong Express, các bạn hãy tham khảo bài viết đó trước khi tiếp tục bài viết này nhé. Trong Express bạn có thể khai báo đường dẫn cố định hoặc đường dẫn động, ...

Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về cách xây dựng URL trong Express, phần này sẽ phụ thuộc rất nhiều về phần Routes trong Express, các bạn hãy tham khảo bài viết đó trước khi tiếp tục bài viết này nhé.

Trong Express bạn có thể khai báo đường dẫn cố định hoặc đường dẫn động, việc sử dụng đường dẫn động giúp chúng ta có thể điều hướng người dùng tới nhiều nơi hơn. Ví dụ ở đây mình có URL tĩnh:

https://example.com/admin

và đây là đường dẫn động:

https://example.com/posts/1
https://example.com/posts/2
https://example.com/posts/3

Nội dung bài viết sẽ chủ yếu tập chung ra những cách khởi tạo đường dân động (dynamic URL) .

1. Đường dẫn tĩnh (Static URL)

Ở đây mình có một đường dẫn tĩnh, để khai báo trong Express bạn chỉ thêm chỉ định route patch là path mà bạn muốn khởi tạo. Chúng ta sẽ có ví dụ như sau :

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

app.get('/admin', function(req, res){
   res.send('Admin Page');
});
app.listen(3000);

Tiến hành khởi chạy đường dẫn sẽ hiển thị như sau:

Zaidap.com url building express png

Đây là một phần khá đơn giản nên mình chỉ tập chung vào dynamic URL bên duới.

2. Đường dẫn động (Dymanic URL)

Route paths có thể là một string, string patterns hay regular express, chúng ta có thể khởi tạo một Dymanic URL bằng cách sử dụng regular express patch và string paterns.

Các ký tự như ?, +, *() là cách ký tự regular express hay được sử dụng. Ký tự ngạch ngang (-) và chấm (.) được mặc định là một string-based path.

Route parameters

Tham số được đặt tên trong các phân đoạn URL được sử dụng để bắt các giá trị được chỉ định tại vị trí của chúng trong URL. Các giá trị đã ghi vào đối tượng req.params, với key của tham số tuyến được chỉ định trong đường dẫn, và value là giá trị tương ứng của chúng.

Route path: /users/:userId/books/:bookId
Request URL: http://localhost:3000/users/34/books/8989
req.params: { "userId": "34", "bookId": "8989" }

Để chỉ định một route parameters chúng ta sử dụng cú pháp sau:

app.get('/users/:userId/books/:bookId', function (req, res) {
  res.send(req.params)
})

Ngoài ra bạn còn có thể thêm pattern match cho router params :

app.get('/things/:id([0-9]{5})', function(req, res){
   res.send('id: ' + req.params.id);
});

Dưới đây mình có môt ví dụ:

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

app.get('/members/:memberID([0-9]{2})', function(req, res){
   res.send(req.params);
});
app.listen(3000);

Zaidap.com url building express 2 png

Lưu ý rằng các params name phải là ký tự từ ([A-Za-z0-9_]).

Pattern Matched Routes

Bạn cũng có thể sử dụng string paterns trong paths, ở đây mình có một vài ví dụ :

Route này sẽ có path là acd hoặc abcd

app.get('/ab?cd', function (req, res) {
  res.send('ab?cd')
})

Route này sẽ có path là abcd, abbcd, abbbcd,vv...

app.get('/ab+cd', function (req, res) {
  res.send('ab+cd')
})

Route này sẽ có path là abcd, abxcd, abRANDOMcd, ab123cd,vv...

app.get('/ab*cd', function (req, res) {
  res.send('ab*cd')
})

Route này sẽ có path là /abe /abcde

app.get('/ab(cd)?e', function (req, res) {
  res.send('ab(cd)?e)
})

Regular expressions Routes

Ngoài ra, bạn còn có thể sử dụng regular express trong path route. Ở đây mình có một vài ví dụ :

Chỉ match với kí tự a.

app.get(/a/, function (req, res) {
  res.send('/a/')
})

Match với số điện thoại:

app.get('/phonenumbers/((09|03|07|08|05)+([0-9]{8}))', function(req, res){
   res.send(req.params);
});

Zaidap.com url building express 3 png

Trong bài này chúng ta đã cùng nhau đi tìm hiểu về xây dựng URL trong Express, đây là kiến thức rất cơ bản về nó nhưng cũng hết sức quan trọng trong quá trình làm việc với Express. Mong rằng bài viết sẽ giúp ích cho bạn

0