0

我刚刚通读了sails-skipper 的文档。看起来像是处理多部分文件上传的好方法。

但是,如果我想流式上传不是多部分有效负载的内容怎么办?- 在我目前的情况下,它是一个简单的“文本/csv”上传。

我试过简单地使用 request.pipe ...但这似乎不起作用。

4

1 回答 1

0

答案是......船长不会在这里提供帮助。相反,(就像在通用快递应用程序中一样)在船长之前使用中间件req._body = true来欺骗上游 bodyParser(默认情况下是船帆的船长)。

就我而言,在 config/http.js 中:

var typeIs = require('type-is');

module.exports.http = {

  middleware: {

    order: [
      ...
      'dontParseCSV',
      ...
      'bodyParser',
      ...
    ],
    dontParseCSV: function (req, res, next) {
      if(typeIs(req, 'csv')) {
        // fool body parser into thinking already parsed
        // so we can stream csv
        req._body = true;
      }
      next();
    },
  ...
  }
};

路由器出现在 bodyParser 之后,因此仅针对特定路由执行此操作可能有点不方便(至少如果您希望路由器识别路由而不仅仅是破解正则表达式 :))。就我而言,我所有的其他路由都只接受 json,所以这不是问题。

于 2016-06-21T06:16:43.003 回答