Как потоковая загрузка, которая не является multipart в sailsjs
Я только что прочитал документацию паруса-шкипера. Похоже, хороший способ обработки загрузки нескольких файлов.
Тем не менее, что, если я хочу передать потоковое видео, не являющееся составной частью? - в моем текущем случае это простая загрузка "text/csv".
Я пытался просто использовать request.pipe ... но это не похоже на работу.
1 ответ
И ответ... шкипер здесь не поможет. Скорее (так же, как в обычном экспресс-приложении), используйте промежуточное ПО перед шкипером, который устанавливает 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, так что это не проблема.