我用的是Egg框架,原生的ctx.getFileStream()可以获取到文件流,但是只支持multipart/form-data。 现在我对接的前端只能用application/octet-stream,所以我需要找到办法获取到请求中的二进制文件。
可以用第三方解析包,也可以自己直接解析req(原生的nodejs req对象) 比如:
const parse = (req) => { return new Promise((resolve, reject) => { let chunks = []; let size = 0; req.on('data', function (chunk) { chunks.push(chunk); size += chunk.length; }); req.on("end", function () { let buffer = Buffer.concat(chunks, size); return resolve(buffer); }); req.on('error', function(err) { return reject(err); }) }); }
@alwayslyp 谢谢,按照你提供的代码解决了。顺便再问下,有什么第三方解析包,我知道有个busboy,但只能解析multipart/form-data
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
可以用第三方解析包,也可以自己直接解析req(原生的nodejs req对象) 比如:
@alwayslyp 谢谢,按照你提供的代码解决了。顺便再问下,有什么第三方解析包,我知道有个busboy,但只能解析multipart/form-data