0
我将演示这个简单的代码,我的问题中的POST请求:使用GET请求的回电(瓶盖)
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请求,它将在服务器响应中更新,即res.send(
Hello $ {req.query.someVar} );
但POST请求仍将原始x
值记录到控制台。
它为什么这样表现?我已经尝试了很多东西,如传递对象和通过其他函数等。
我熟悉闭包的工作方式,但显然不完全,因为这绝对是POST回调的问题,保留了值查询参数并且不更新它们。
谢谢。
我正在通过查询参数获取信息,这些查询参数需要在发送到同一页面的请求时查询数据库。因此,我需要该帖子才能访问查询参数 – JohnSnow
因此,为了执行该操作,客户端需要GET和POST到相同的URL?从来没有听说过任何人这样做..如果你真的需要存储状态,你可以使用数据库或类似全局变量,而不是闭包。但我想通常你只需要发送POST请求。 –
是的,我明白了,谢谢 – JohnSnow