Tôi đã gặp câu hỏi này khi đang tìm kiếm chức năng tương tự.
@Jonathan Ong đã đề cập trong một nhận xét ở trên rằng việc sử dụng mảng cho đường dẫn không được dùng nữa nhưng nó được mô tả rõ ràng trong Express 4 và nó hoạt động trong Express 3.x. Đây là một ví dụ về một cái gì đó để thử:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Từ bên trong request
đối tượng, với đường dẫn /hooplul/poo?bandle=froo&bandle=pee&bof=blarg
:
"route": {
"keys": [
{
"optional": false,
"name": "farcus"
}
],
"callbacks": [
null
],
"params": [
null,
null,
"lul"
],
"regexp": {},
"path": [
"/test",
"/alternative",
"/barcus*",
"/farcus/:farcus/",
"/hoop(|la|lapoo|lul)/poo"
],
"method": "get"
},
Lưu ý những gì xảy ra với các tham số: Nó biết các nhóm nắm bắt và tham số trong tất cả các đường có thể có, cho dù chúng có được sử dụng trong yêu cầu hiện tại hay không.
Vì vậy, việc xếp chồng nhiều đường dẫn thông qua một mảng có thể được thực hiện dễ dàng, nhưng các tác dụng phụ có thể không thể đoán trước được nếu bạn hy vọng nhận được bất kỳ thứ gì hữu ích từ đường dẫn được sử dụng theo cách tham số hoặc nhóm bắt. Nó có lẽ hữu ích hơn cho dự phòng / răng cưa, trong trường hợp đó, nó sẽ hoạt động rất tốt.
Chỉnh sửa: Vui lòng xem thêm câu trả lời của @ c24w bên dưới .
Chỉnh sửa 2: Đây là một câu trả lời phổ biến vừa phải. Hãy nhớ rằng ExpressJS, cũng như hầu hết các thư viện Node.js, là một bữa tiệc linh hoạt. Mặc dù định tuyến ở trên vẫn hoạt động (tôi đang sử dụng nó vào lúc này, một tính năng rất tiện dụng), tôi không thể đảm bảo cho đầu ra của đối tượng yêu cầu (nó chắc chắn khác với những gì tôi đã mô tả). Vui lòng kiểm tra cẩn thận để đảm bảo bạn nhận được kết quả mong muốn.