【问题标题】:req.body empty for textarea in http form (Using Express)http 形式的 textarea 的 req.body 为空(使用 Express)
【发布时间】:2015-10-07 21:44:18
【问题描述】:

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

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 中输入的值?

【问题讨论】:

    标签: javascript html http express pug


    【解决方案1】:

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

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

    【讨论】:

    • 成功了!谢谢 :) 我从另一个示例中复制了该表单代码,因为我不确定如何让用户上传文件
    • 那太好了@prcbass - 如果这解决了您的问题,标记为已接受的答案是正确的做法。
    • 会做,不能再接受你的回复作为另一个5分钟的答案:P
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 2016-02-15
      • 2020-12-17
      • 2020-01-08
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多