Là mã của bạn trông giống như bạn bằng cách sử dụng tốc độ, bạn có thể sử dụng người dân địa phương và người dân địa phương kết quả rõ ràng để chuyển các biến số cho tuyến đường của bạn. Trong khi các câu trả lời khác đề xuất các giải pháp làm việc tôi nghĩ rằng nó ít gây khó chịu khi sử dụng các cơ chế thể hiện để thiết lập các biến này.
Với người trả lời địa phương (See Express API reference) trước tiên bạn phải đặt biến ở đâu đó trong phần giữa hoặc tuyến đường. Tôi sẽ chỉ cho cách tiếp cận middleware
app.use(function(req,res, next) {
res.locals.top = 200;
next();
});
sau đó trong con đường của bạn, bạn có thể truy cập vào khách sạn này qua res.locals.variablename
exports.gettop = function(req, res) {
console.log(res.locals.top);
res.send(200);
};
Trong trường hợp bạn muốn làm cho các ứng dụng thiết lập rộng một cách tiếp cận tốt hơn là sử dụng người dân địa phương ứng dụng (See Express API reference)
để thiết lập một người dân địa phương ứng dụng biến bạn có thể sử dụng
app.locals.top = 100;
Để truy cập biến này từ tuyến đường của bạn sử dụng
exports.gettop = function(req, res){
console.log(req.app.locals.top);
res.send(200);
};
Điều này đã cứu tôi Rất nhiều đau đầu và thời gian! Cảm ơn! – Tobi
Kỳ lạ, logic này không hoạt động khi hàm ràng buộc (routes.gettop) là một phương thức 'kế thừa' (tức là, được định nghĩa trong chuỗi nguyên mẫu của đối tượng chứ không phải là một phương thức riêng của nó). Trình xử lý thực sự được đăng ký, nhưng nó không bao giờ được gọi! – LexLythius
@LexLythius rằng nó không bao giờ được gọi là âm thanh lạ. Tôi có thể tưởng tượng rằng nó được gọi với bối cảnh không chính xác, mà trong ví dụ của tôi là 'null' nhưng đối với một phương thức ràng buộc có thể là instance (' routes'). – robertklep