【问题标题】:Parsing form-data using Meteor使用 Meteor 解析表单数据
【发布时间】:2014-12-09 05:26:11
【问题描述】:

我在使用 Meteor 解析 multipart/form-data 时遇到问题

这是我的路线:

this.route('mail', {
  where: 'server',
  path: '/mail',
  action: function () {
    console.log(this.request.body);
    this.response.end('get request\n');
  }
});

urlEncoded 和 JSON 数据工作正常

【问题讨论】:

    标签: node.js express meteor iron-router


    【解决方案1】:

    这是 Iron-router 解析 multipart/form-data 中的一个错误: https://github.com/EventedMind/iron-router/issues/909

    同时可以使用 Busyboy 模块解决:

    var Busboy = Meteor.npmRequire("busboy")
    var fs     = Npm.require("fs");
    var os     = Npm.require("os");
    var path   = Npm.require("path");
    
    Router.onBeforeAction(function (req, res, next) {
      var filenames = []; // Store filenames and then pass them to request.
    
      if (req.method === "POST") {
        var busboy = new Busboy({ headers: req.headers });
    
        busboy.on("file", function (fieldname, file, filename, encoding, mimetype) {
          var saveTo = path.join(os.tmpDir(), filename);
          file.pipe(fs.createWriteStream(saveTo));
          filenames.push(saveTo);
        });
    
        busboy.on("field", function(fieldname, value) {
          req.body[fieldname] = value;
        });
    
        busboy.on("finish", function () {
          // Pass filenames to request
          req.filenames = filenames;
          next();
        });
    
        // Pass request to busboy
        req.pipe(busboy);
      } else {
        next();
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多