EXPRESS FRAMEWORK
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Xây dựng URL trong Express

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:

freetuts 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);

freetuts 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);
});

freetuts 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

Cùng chuyên mục:

Crawl dữ liệu website bằng NodeJS cơ bản

Crawl dữ liệu website bằng NodeJS cơ bản

CORS là gì ? Xử lý CORS trong NodeJS

CORS là gì ? Xử lý CORS trong NodeJS

Chắc hẳn trong quá trình xử lý các request tới server thì một vài trường…

Xử lý form trong Express

Xử lý form trong Express

Populate trong Mongoose

Populate trong Mongoose

Error Handling & Debugging trong Socket.io

Error Handling & Debugging trong Socket.io

Namespaces & Rooms trong Socket.io

Namespaces & Rooms trong Socket.io

Middleware trong Mongoose

Middleware trong Mongoose

Create / Read / Update / Delete trong Mongoose

Create / Read / Update / Delete trong Mongoose

Validation trong Mongoose

Validation trong Mongoose

Subdocuments trong Mongooose

Subdocuments trong Mongooose

Documents trong Mongoose

Documents trong Mongoose

Trong bài viết này chúng ta sẽ tìm hiểu về documents trong Mongoose

Models trong Mongoose

Models trong Mongoose

SchemaTypes trong Mongoose

SchemaTypes trong Mongoose

Schemas trong Mongoose

Schemas trong Mongoose

Mongoose trong NodeJS

Mongoose trong NodeJS

Làm việc với Table MySQL sử dụng Nodejs

Làm việc với Table MySQL sử dụng Nodejs

Kết nối với MongoDB trong NodeJS

Kết nối với MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Broadcasting trong Socket.io

Broadcasting trong Socket.io

Top