【问题标题】:How to grab multiform/form-data from a request? Nodejs如何从请求中获取多表单/表单数据?节点
【发布时间】:2019-12-22 11:18:41
【问题描述】:

我正在尝试创建一个接收多部分/表单数据的 API 端点。

目前,我没有编写 html。但我很可能会制作一个包含多个文本输入、复选框和文件上传的表单。我会将该表单作为 multipart/form-data 发送到所述 API 端点。我正在使用 multipart/form-data,因为一旦图像到达 API 端点,我就会将图像上传到 AWS 存储桶。是否有类似于 request.body 或 request.params 的东西用于在请求中获取 multipart/form-data ?

我尝试通过 POST request.body 访问表单数据值,但 body 是一个空对象。

Routes.js

module.exports = (function() {
   return {
      addProfile: function(req, res){
         try {
           console.log(req.body); // <-- Empty object
           res.status(200).send('yoo');
         } catch (err) {
           res.status(200).send({error:err});
         }
      }
   }
})();

Server.js

var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: true});
app.use(bodyParser.json());

【问题讨论】:

  • 请添加您尝试过的代码。这将有助于找到问题。
  • @NayanPatel 当然,但上面几乎没有任何代码。我一直在尝试获取请求数据。无法真正进行。
  • @NayanPatel 添加代码
  • 基本上,你必须使用bodyparser,检查这里stackoverflow.com/questions/26347394/…
  • @PranoySarkar 我以前见过 multer。谢谢!我以为 multer 只适用于 request.files。

标签: node.js express


【解决方案1】:

使用multiparty中间件解析上传的文件。

const multiparty = require('multiparty');
    module.exports = (function() {
        return {
          addProfile: function(req, res){
             try {
                var form = new multiparty.Form();
                form.parse(req, function(err, fields, files) {
                    console.log(files);
                    console.log(fields);
                });
               res.status(200).send('yoo');
             } catch (err) {
               res.status(200).send({error:err});
             }
          }
        }
    })();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 2019-10-13
    • 2019-09-27
    相关资源
    最近更新 更多