**前提: **
- Node中间层服务是采用egg.js 开发,
- 会代理接口 ,对请求有些处理,在转发后端
- 想采用stream的方式对接口进行代理 场景 前端formdata上传文件,原采用方式是用egg封装的ctx.getFileStream获取文件流 写入buffer,再使用 superagent 的atach 使用buffer 上传给后端, 现准备采用类似 req.pipe(res) 的模式 进行请求 采用的request的流
ctx.body = request({ uri, method, ...requestOption.headers })
.on('response', response => {
Object.keys(response.headers).forEach((key) => {
// if ('content-length' === key) return;
if ('transfer-encoding' === key) return;
ctx.set(key, response.headers[key]);
});
})
.on('error', (error) => {
console.log(error)
})
.pipe(PassThrough())
但是发现转发后无法携带file文件流 后端无法获取到file 有没有一些好的方法解决代理 文件传输 或者 以上的方式可携带上文件流?