req.body http 格式的文本区域为空(使用 Express)

req.body empty for textarea in http form (Using Express)

我有以下表单让用户上传文件并提交文本:

form(action='/createpost' enctype="multipart/form-data" method='post' id="imgForm")
    input(type='file' name='imgPath' size = "60")
    br
    textarea(name="postText" form="imgForm") Enter your post text here...
    br
    input(type='submit' value="Submit")

当我运行这个:

router.post('/createpost', function(req,res){
  console.log("POST FORM BODY", req.body.postText);
  res.end();
});

我在控制台中得到 undefined。如何获取 textarea 中输入的值?

尝试删除表单中的 enctype="multipart/form-data" 部分,看看是否有效。我认为服务器以不同方式解释多部分发送的数据。

我不知道我是否理解 enctype="multipart/form-data" 的作用,但我会在从表单和节点模块上传文件时使用它 multiparty

对于遇到此答案的任何人,如果您 enctype="multipart/form-data" 您必须使用可以处理文件的中间件,而 body-parser 不能。一个流行的选项是 multer https://www.npmjs.com/package/multer