【发布时间】:2017-08-27 13:37:22
【问题描述】:
我将用这个简化的代码演示我的问题:
app.get('/test', (req, res) => {
let x = req.query.someVar;
app.post('/test', (req, res) => {
console.log(x);
});
res.send(`Hello ${req.query.someVar}`);
});
此代码第一次运行时,POST 回调函数保存对x 的引用,这是我作为查询参数传递的任何内容。如果我更改查询参数,发送另一个 GET 请求,它将在服务器的响应中更新 ieres.send(Hello ${req.query.someVar}); 但 POST 请求仍会将原始 x 值记录到安慰。
为什么会这样?我已经尝试过很多事情,比如通过对象和通过其他函数等。
我熟悉闭包的工作原理,但显然不完全,因为这绝对是 POST 回调保留查询参数的值而不更新它们的问题。
谢谢。
【问题讨论】:
标签: javascript node.js closures