Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs全局变量_Javascript_Node.js_Global Variables - Fatal编程技术网

Javascript Nodejs全局变量

Javascript Nodejs全局变量,javascript,node.js,global-variables,Javascript,Node.js,Global Variables,我在node.js服务器端代码(通过表单提交访问)中的post路由中有一个名为username的变量,我希望在另一个post路由中使用相同的变量 app.post("/login", function(req, res) { var username = req.body.username; ... }); 有什么方法可以做到这一点吗?最好的解决方案是首先在express app中初始化全局变量 app.use(function (req, res, next) { r

我在node.js服务器端代码(通过表单提交访问)中的post路由中有一个名为
username
的变量,我希望在另一个post路由中使用相同的变量

app.post("/login", function(req, res) {
    var username = req.body.username;
    ...
});

有什么方法可以做到这一点吗?

最好的解决方案是首先在express app中初始化全局变量

app.use(function (req, res, next) {
    res.locals.username = "";
    next();
});
在post route中设置此变量

app.post("/login", function(req, res) {
 global.username = req.body.username;
});

这似乎是非常破碎的。如果有人先击中了另一条邮政路线,那么它就不会被定义。如果鲍勃打了
/login
,然后
爱丽丝打了
/login
,然后
鲍勃打了
把我所有的钱都捐给慈善机构
,那么鲍勃就把爱丽丝所有的钱都花光了。全局变量不正确。请使用sane身份验证系统。你需要治疗@昆汀:谢谢,我会调查的。设置
res.locals.username
然后再不使用它是没有意义的。你回答的后半部分确实回答了问题,但似乎不太可能解决OP遇到的任何实际问题(Deep Kakkar在两小时前已经说过你在那里所做的一切)。使用全局变量来跟踪最近登录的用户是没有意义的。
app.post("/login", function(req, res) {
 global.username = req.body.username;
});