Tôi đang học express.js/node.js và có hiểu biết tốt nhưng không tuyệt vời về mô hình nguyên mẫu javascript. Do đó, tôi hơi bối rối về cách thức phần mềm trung gian có thể được xếp chồng lên nhau trong các cơ chế định tuyến của express.js.Phạm vi chức năng phần mềm trung gian trong express.js
Nói rằng chúng tôi có điều này code
function andRestrictTo(role) {
return function(req, res, next) {
req.authenticatedUser.role == role
? next() : next(new Error('Unauthorized'));
}
}
app.del('/user/:id', loadUser, andRestrictTo('admin'), function(req, res){
res.send('Deleted user ' + req.user.name);
});
Kể từ andRestrictTo (vai trò) trả về một middleware, nó lấy của thực hiện trong chuỗi định tuyến - Tôi đã nhận đó. Tuy nhiên:
Thông số tiếp theo, tham số tiếp theo đến từ đâu trong hàm trả về? Tôi đoán rằng "chuỗi" bằng cách nào đó xếp hàng và xác định các thông số, nhưng điều này hơi mơ hồ để hiểu sâu hơn ...
Điều gì đang xảy ra với Lỗi được nêu lên như tham số tiếp theo? Có lỗi nào đơn giản là phá vỡ chuỗi phần mềm trung gian không?
Nếu tôi muốn đóng gói cơ chế hạn chế cho một tệp/mô-đun riêng biệt (như khuôn khổ bảo mật), cách thực hiện?
Nó sẽ là tuyệt vời nếu ai đó có thể chỉ ra những ý tưởng cơ bản :)