Lev*_*rts 9 javascript node.js express
像往常一样,我试图在SO上找到这个问题,但仍然没有运气.
我知道答案是"是的,你可以修改req对象"但是没有关于req对象参数的说法.
例如,以下代码将引发错误:
app.get('/search', function(req, res) {
req.param('q') = "something";
});
Run Code Online (Sandbox Code Playgroud)
错误:
ReferenceError: Invalid left-hand side in assignment
Run Code Online (Sandbox Code Playgroud)
我想这与没有"SET"方法的属性有关,或者与这些方法有关.
有几种情况可以派上用场.
在问题上,有没有办法修改req对象参数?
Roy*_*iss 24
而不是:
req.param('q') = "something";
Run Code Online (Sandbox Code Playgroud)
你需要使用:
req.params.q = "something";
Run Code Online (Sandbox Code Playgroud)
第一个是尝试在param函数的返回值上设置一个值,而不是参数本身.
值得注意的是req.param()方法从中检索值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"
Run Code Online (Sandbox Code Playgroud)
这就是说,除非你永久性地修改从客户端提交的内容,否则最好把它放在其他地方,这样就不会被你正在使用的任何第三方模块的客户输入错误.