【问题标题】:using body parser to pass zip file使用正文解析器传递 zip 文件
【发布时间】:2015-10-07 07:43:45
【问题描述】:

我有使用 express 的节点应用程序,在应用程序中我需要通过邮件发送 zip 文件(例如从邮递员到节点服务器),目前我使用如下的正文解析器,但我不知道这样可以吗?

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

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

【问题讨论】:

  • 您希望接收或发送 zip 文件吗?

标签: javascript node.js express body-parser


【解决方案1】:

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

bodyParser.text(选项)

返回将所有主体解析为字符串的中间件...

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

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

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

对于文件上传,你真的应该看看multer,它适用于multipart/form-data content-type。

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 2012-06-16
    • 1970-01-01
    • 2012-09-06
    • 2021-11-02
    • 2013-04-12
    • 2013-12-07
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多