gpt4 book ai didi

node.js - Node + Express : How do the req and res variables have global scope without causing collisions?

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:47 25 4
gpt4 key购买 nike

似乎 reqres 变量在 Express 中具有全局范围(例如,无论函数范围如何,都可以访问这些变量)。如何在不导致并发客户端之间发生冲突的情况下实现这一目标?

最佳答案

它们没有全局作用域。

路线

路由为每个路由采用一个处理函数。该路由传递给 reqres 对象。

app.get('/my-route', myHandler);

处理程序

您的处理程序接收这些对象并使用它们。

exports.myHandler = function(req, res) {
res.send("Hello world");
);

闭包

当您进行数据库调用(或任何其他 io 绑定(bind)调用)时,您会向其传递一个回调。 reqres 对象作为闭包存在于该回调中。

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

关于关闭的更多信息:How do JavaScript closures work?

关于node.js - Node + Express : How do the req and res variables have global scope without causing collisions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16902976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com