Javascript 快速请求正文在表单提交中为空

Javascript 快速请求正文在表单提交中为空,javascript,node.js,express,Javascript,Node.js,Express,我有下面的表单,提交它会导致一个空的req.body这是我的HTML: <form action="/contact" name="contactUs" id="contactUs" method="POST"> <label for="email">Email Message</label> <input type="text" name="email" id="email"> <input type="submit" va

我有下面的表单,提交它会导致一个空的
req.body
这是我的HTML:

<form action="/contact" name="contactUs" id="contactUs" method="POST">
   <label for="email">Email Message</label>
   <input type="text" name="email" id="email">
  <input type="submit" value='Save'>
</form>

console.log
工作正常。但是,我为
req.body
获取了一个空对象

您以HTML帖子的形式提交,这意味着您正在使用
内容类型:application/x-www-form-urlencoded

这意味着您需要添加
app.use(express.urlencoded({extended:false}))

,这种方式express可以解析该请求并将其放入
req.body

您的输入标记未关闭
/>
@chsdk-他们没有暗示他们正在使用XHTML,因此元素已关闭。@Quentin好吧,这是一种不好的做法,我们应该提到它。@chsdk-这不是一种不好的做法。膨胀的HTML带有可选功能,旨在使其与XML兼容,这是毫无意义的,也是对字节的浪费。谢谢bruce。非常感谢根据您的表单数据,如果您有简单的文本/数字/电子邮件/密码字段,我发现我的
req.body
在我的提交表单中明确提到
enctype=“text/html”
后就开始填充。到目前为止仍然有用。非常感谢。
 app.use(bodyParser.json());
 app.use("/", expressStaticGzip("dist"));

app.post("/contact", (req, res) => {
  console.log('anyone there?')
  res.json(req.body);
});