Node.js 节点+;Express:req和res变量如何具有全局作用域而不引起冲突?
似乎Node.js 节点+;Express:req和res变量如何具有全局作用域而不引起冲突?,node.js,express,global-variables,Node.js,Express,Global Variables,似乎req和res变量在Express中具有全局范围(例如,无论函数范围如何,这些变量都可以访问)。如何在不造成同时客户端之间冲突的情况下实现这一点?它们没有全局作用域 路线 该路由为每个路由使用一个处理程序函数。该路由通过req和res对象传递 app.get('/my-route', myHandler); 处理者 处理程序接收并使用这些对象 exports.myHandler = function(req, res) { res.send("Hello world"); );
req
和res
变量在Express中具有全局范围(例如,无论函数范围如何,这些变量都可以访问)。如何在不造成同时客户端之间冲突的情况下实现这一点?它们没有全局作用域
路线
该路由为每个路由使用一个处理程序函数。该路由通过req
和res
对象传递
app.get('/my-route', myHandler);
处理者
处理程序接收并使用这些对象
exports.myHandler = function(req, res) {
res.send("Hello world");
);
闭包
当您进行数据库调用(或任何其他io绑定调用)时,您会将回调传递给它。req
和res
对象作为闭包存在于该回调中
exports.myHandler = function(req, res) {
var weekday = req.query.weekday || "today";
db.getWeather(weekday, function(err, result) {
// `res` here is a closure
if(err) { res.send(500,"Server Error"); return; }
res.send(result);
});
};
有关闭包的更多信息: