我刚刚通读了sails-skipper 的文档。看起来像是处理多部分文件上传的好方法。
但是,如果我想流式上传不是多部分有效负载的内容怎么办?- 在我目前的情况下,它是一个简单的“文本/csv”上传。
我试过简单地使用 request.pipe ...但这似乎不起作用。
我刚刚通读了sails-skipper 的文档。看起来像是处理多部分文件上传的好方法。
但是,如果我想流式上传不是多部分有效负载的内容怎么办?- 在我目前的情况下,它是一个简单的“文本/csv”上传。
我试过简单地使用 request.pipe ...但这似乎不起作用。
答案是......船长不会在这里提供帮助。相反,(就像在通用快递应用程序中一样)在船长之前使用中间件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,所以这不是问题。