HTML表单请求主体为空 – NodeJs

我正在使用Node.js创build一个API POST并expression。 我只是想使用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)); }) 

在控制台上收到的是:request:{}

试图张贴到相同的API使用邮递员 – 原始,JSON(应用程序/ JSON),事情工作正常。

有人可以告诉我什么是我在做什么错?

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

action属性中,你不需要指定主机只是指定path如“ / add ”。