因此,像往常一样,我尝试在SO上找到这个问题,但还是没有运气。
我知道答案是“是的,您可以修改req对象”,但是关于req对象参数什么也没说。
例如,以下代码将引发错误:
app.get('/search', function(req, res) { req.param('q') = "something"; });
错误:
ReferenceError: Invalid left-hand side in assignment
我想这与没有“ SET”方法的属性有关,或者与之类似。
在某些情况下可以派上用场。
问题 是,有没有办法修改req对象参数?
而不是:
req.param('q') = "something";
您需要使用:
req.params.q = "something";
第一个尝试在param函数的返回值上设置一个值,而不是参数本身。
值得注意的是,req.param()方法从req.body,req.params并按req.query该顺序一次检索所有值,但是要设置一个值,您需要指定这三个值中的哪一个:
req.body
req.params
req.query
req.body.q = "something"; // now: req.param('q') === "something" req.query.r = "something else"; // now: req.param('r') === "something else"
也就是说,除非您要永久修改从客户端提交的内容,否则最好将其放在其他位置,以免被您使用的任何第三方模块误认为来自客户端的输入。