【发布时间】:2016-08-09 07:27:30
【问题描述】:
我正在尝试创建一个multer 中间件,以通过superagent 将来自客户端的流式文件传输到第三方。
const superagent = require('superagent');
const multer = require('multer');
// my middleware
function streamstorage(){
function StreamStorage(){}
StreamStorage.prototype._handleFile = function(req, file, cb){
console.log(file.stream) // <-- is readable stream
const post = superagent.post('www.some-other-host.com');
file.stream.pipe(file.stream);
// need to call cb(null, {some: data}); but how
// do i get/handle the response from this post request?
}
return new StreamStorage()
}
const streamMiddleware = {
storage: streamstorage()
}
app.post('/someupload', streamMiddleware.single('rawimage'), function(req, res){
res.send('some token based on the superagent response')
});
我认为这似乎可行,但我不确定如何处理来自超级代理 POST 请求的响应,因为我需要返回从超级代理请求接收到的令牌。
我试过post.end(fn...) 但显然end 和pipe can't both be used together。我觉得我误解了管道的工作原理,或者我正在尝试做的事情是否实用。
【问题讨论】:
标签: node.js multer superagent