我有一个像这样的简单HTML文件:
<form method="post" action="http://localhost:3000/post">
<input name="name" type="text"/><br />
<input name="last_name" type="text"/><br />
<button id="submit" type="submit">Submit</button>
</form>
我使用此节点(快速)代码接收帖子数据:
app.route('/post')
.post(function(req, res, next) {
res.send(req.body.name);
});
例如输入此内容:
Richard Stallman
我收到这样的话:
[ “理查德”, “斯托尔曼”]
但我需要他们这样:
{ name : "Richard" ,last_name : "Stallman" }
或类似的东西。
我该如何解决?
答案 0 :(得分:1)
我必须使用req.body
而不是req.body.name
,它会给我每个索引及其值。就像一个json文件。
答案 1 :(得分:0)
在Express中获取发布数据的正确方法是使用express body parser。
这将为您提供一个对象,其中的键与您指定的表单字段匹配(如您所愿)。
您可能需要application/x-www-form-urlencoded
解析器。
app.use(bodyParser.urlencoded({ extended: false }))
如果您使用GET
作为表单上的方法,则可以使用req.query
直接将对象拉出快递,而无需任何额外的中间件。
因此,如果表单发送以下请求:
www.mysite.com/input?name=richard&last_name=stallman
您的req.query
将为{name: 'richard', last_name: 'stallman'}