使用身体分析器来传递zip文件

我有节点应用程序,它使用快递,在我需要通过邮政邮编 (例如从邮递员到节点服务器)发送的应用程序,目前我使用身体分析器像下面,但我不知道这是否好吗?

app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.json()); app.use(bodyParser.text({ type: 'application/text-enriched', limit: '10mb' })); 

顺便说一句这是工作,但我想知道如果我使用它的权利…

bodyParse.text()是用于stringtypes的主体。 从文档:

bodyParser.text(选项)

返回将所有主体parsing为string的中间件…

因为你正在上传二进制数据(例如zip文件),所以使用bodyParser.text()将你的缓冲区转换为utf-8string 。 所以你会失去一些二进制文件的数据和压缩文件可能是不可读的。

对于二进制文件,使用bodyParser.raw() ,它将给你req.body一个缓冲区,你可以安全地保存在一个文件的缓冲区。

 app.use(bodyParser.raw({ type: 'application/octet-stream', limit: '10mb' })); 

对于file upload,你应该看看multer ,它适用于multipart/form-data内容types。