使用body解析器传递zip文件

时间:2015-10-07 07:43:46

标签: javascript node.js express body-parser

我使用快递的节点应用程序,在我需要通过帖子消息 zip文件发送的应用程序(例如从邮递员到节点服务器),目前我使用身体解析器如下但我想知道这是否可以?

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

顺便说一下,这是有效的,但我想知道我是否正确使用它......

1 个答案:

答案 0 :(得分:5)

bodyParse.text()适用于string类型的正文。来自文档:

  

<强> bodyParser.text(选项)

     

返回以字符串形式解析所有实体的中间件......

因为您要使用bodyParser.text() convert your buffer body to utf-8 string上传二进制数据(例如zip文件)。因此,您将丢失一些二进制文件的数据,并且zip文件可能无法读取。

对于二进制文件,使用bodyParser.raw(),它将在req.body中为您提供缓冲区,您可以安全地将该缓冲区保存在文件中。

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

对于文件上传,您应该真正关注适用于multipart/form-data内容类型的multer

相关问题