如何检索POST查询参数?
|
这是我的简单表格:
<form id=\"loginformA\" action=\"userlogin\" method=\"post\">
<div>
<label for=\"email\">Email: </label>
<input type=\"text\" id=\"email\" name=\"email\"></input>
</div>
<input type=\"submit\" value=\"Submit\"></input>
</form>
这是我的Express.js / Node.js代码:
app.post(\'/userlogin\', function(sReq, sRes){
var email = sReq.query.email.;
}
我尝试了sReq.query.email
或sReq.query[\'email\']
或sReq.params[\'email\']
,等等。它们都不起作用。他们都返还undefined
。
当我更改为Get呼叫时,它可以工作,..
没有找到相关结果
已邀请:
19 个回复
攫怂绵十
和
。 从Express 4.0到4.15,这是不同的:
然后:
其余的就像在Express 3.0中一样: 首先,您需要添加一些中间件来解析正文的发布数据。 添加以下两行代码之一或全部:
然后,在处理程序中,使用
对象:
请注意,不建议使用
。
...相当于:
存在安全问题,因此最好为您需要的特定编码类型显式添加支持。如果确实需要多部分编码(例如,以支持上传文件),则应阅读此内容。
超可林
中间件,但这实际上是
,
和
中间件的包装(http://expressjs.com/api.html#bodyParser)。表单请求主体的解析是由
中间件完成的,仅是将to11ѭ对象公开表单数据所需的全部工作。 由于出于安全考虑,ѭ16/ 24会为所有上载的文件创建临时文件(并且不会进行垃圾回收),因此建议不要使用
包装器,而应仅使用所需的中间件。 注意:当发布Connect 3.0(Express扩展了该版本)时,
将很快更新为仅包括
和
。 简而言之,而不是...
...您应该使用
并且如果/当您需要处理多部分表单(文件上传)时,请使用第三方库或中间件,例如多方,busboy,dicer等。
赐黄
这是原始的仅连接版本:
querystring和主体均使用Rails样式的参数处理(
)而不是低级的
库进行解析。为了使用
解析重复的参数,该参数需要带有方括号:
。它还支持嵌套地图。除了解析HTML表单提交,bodyParser还可以自动解析JSON请求。 编辑:我阅读了express.js并修改了答案,使Express用户更加自然。
谷靛
这会将其发送到浏览器
尽管最好使用中间件,所以您不必在每条路线中都一遍又一遍地编写它。
款去芳尾脊
与npm分开安装,然后使用类似以下的内容(示例取自GitHub页面):
掸牛浓疗
使用快递
输出:
慰泥悍瓶
然后对于
请求,您可以通过
获得职位值。
臂哦
为了利用这些中间件,现在您需要分别为每个中间件执行npm。 由于bodyParser被标记为已弃用,因此我建议使用json,urlencode和multipar解析器(如强大,connect-multiparty)的以下方式。 (不建议使用多部分中间件)。 还要记住,仅定义urlencode + json,就不会解析表单数据,并且req.body将是未定义的。您需要定义一个中间件处理多部分请求。
稍惮
前端:
柑恫祟
将其加载到您的应用中:
然后,将其与其他表单解析中间件一起添加到中间件堆栈中。
connect.json()处理application / json connect.urlencoded()处理应用程序/ x-www-form-urlencoded multer()处理多部分/表单数据
嗓瑰
属性,而不仅仅是
。否则,将不解析任何内容。
我的白痴错误是您的利益。
犁攀富
知道应该在json和urlencode之后使用app.use(app.router),这是非常重要的,否则它将不起作用!
念炯
扇献隙
信藉乒
辟官陡板休
秃拳割
附言对于那些熟悉PHP的人:为了访问PHP \的
变量,我们使用
,并访问PHP \的
变量,我们在Node.js中使用ѭ11.。
佃蒜狗掂哥
适用于
,
适用于人体分析器。 只需通过更改帖子来尝试以下操作即可:
在快速代码中使用\'app.get \'
埠仙俊