И ответ ... шкипер здесь не поможет. Скорее, (как и в общем экспресс-приложении) используйте middleware перед шкипером, который устанавливает req._body = true
, чтобы обмануть вверх по телу bodyParser (который по умолчанию является шкипером для парусов).
В моем случае, в конфигурации/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, так что это не проблема.