我刚刚通读了sails-skipper的文档。看起来是一个处理多部分文件上传的好方法。
但是,如果我想流式上传不是多部分有效负载的内容呢?--在我的当前情况下,它是一个简单的“文本/csv”上传。
我已经尝试过简单地使用request.pipe ...但这似乎行不通。
发布于 2016-06-21 14:16:43
答案是...斯基普不会帮上忙的。相反,(就像在通用的express应用程序中一样),在skipper之前使用middleware,这会将req._body = true设置为欺骗上游bodyParser (默认情况下,sails的skipper是skipper)。
在我的例子中,在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();
},
...
}
};路由器位于regexp之后,因此只针对特定路由执行此操作可能有点不方便(至少如果您希望路由器识别该路由,而不仅仅是在bodyParser :中进行黑客攻击)。在我的例子中,我的所有其他路由都只接受json,所以这不是问题。
https://stackoverflow.com/questions/37935531
复制相似问题