HTML表单请求正文空 - NodeJs

时间:2017-06-16 07:25:14

标签: html node.js forms postman

我想使用Node.js和express创建一个API POST。我只是想用html格式发布一些数据:

<form id="myform" action="http://localhost:4000/add" method="post" enctype="application/json">
    <input type="text" name="name" id="name" />
    <input type="submit" id="submit" />
</form>

服务器只接收POST请求并将主体显示在console.log中。

router.post('/add', function (req, res){
    console.log("request: "+JSON.stringify(req.body));
})

控制台收到的是: 请求:{}

尝试使用Postman - raw,JSON(application / JSON)发布到相同的api中,一切正常。

有人可以告诉我我在做什么有什么问题吗?

2 个答案:

答案 0 :(得分:2)

浏览器不支持将HTML表单作为application / json提交。大多数浏览器可能会忽略该值并将表单作为默认的enctype发送,即application / x-www-form-urlencoded。要解析它,您需要使用适当的中间件。其中一个例子是body-parser模块urlencoded() middleware

答案 1 :(得分:0)

操作属性中,您无需特定主机,只需指定路径,例如“ / add ”。