JavaScript如何检索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呼叫时,它可以工作,所以..有什么想法吗?
回答:
事情已经改变了再次启动快速4.16.0,您现在可以使用express.json()
与express.urlencoded()
就像在快车3.0。
从Express 4.0到4.15,这是不同的:
$ npm install --save body-parser
然后:
var bodyParser = require('body-parser')app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
其余的就像在Express 3.0中一样 :
首先,您需要添加一些中间件来解析正文的发布数据。
添加以下两行代码之一或全部:
app.use(express.json()); // to support JSON-encoded bodiesapp.use(express.urlencoded()); // to support URL-encoded bodies
然后,在处理程序中,使用req.body
对象:
// assuming POST: name=foo&color=red <-- URL encoding//
// or POST: {"name":"foo","color":"red"} <-- JSON encoding
app.post('/test-page', function(req, res) {
var name = req.body.name,
color = req.body.color;
// ...
});
请注意,express.bodyParser()
不建议使用。
app.use(express.bodyParser());
…相当于:
app.use(express.json());app.use(express.urlencoded());
app.use(express.multipart());
存在与安全性有关的问题express.multipart()
,因此最好为所需的特定编码类型显式添加支持。如果您确实需要分段编码(例如,以支持上传文件),则应阅读。
以上是 JavaScript如何检索POST查询参数? 的全部内容, 来源链接: utcz.com/qa/397499.html