我想使用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中,一切正常。
有人可以告诉我我在做什么有什么问题吗?
答案 0 :(得分:2)
浏览器不支持将HTML表单作为application / json提交。大多数浏览器可能会忽略该值并将表单作为默认的enctype
发送,即application / x-www-form-urlencoded。要解析它,您需要使用适当的中间件。其中一个例子是body-parser
模块urlencoded()
middleware。
答案 1 :(得分:0)
在操作属性中,您无需特定主机,只需指定路径,例如“ / add ”。