Node.js-如何接收和解析multipart / formData作为具有字段和文件的对象数组?

时间:2019-02-27 09:22:27

标签: node.js express file-upload multipartform-data body-parser

我想执行实现以在Node.js服务器应用程序中接收multipart / formData。对于这种请求,我应该能够以形式接收同一“关键字”的字段数组,并以多部分但在不同索引处接收同一“关键字”上的文件数组。

例如: 在客户端应用程序中,我的formData(字段)应该看起来像这样(键:值):

data[0].id : 1
data[0].name : Data 1
data[1].id : 2
data[1].name : Data 2

我的多部分表单(文件)应在客户端应用程序上看起来像这样(键:值):

data[0].images[0] : "/file1_path.jpg"
data[0].images[1] : "/file2_path.jpg"
data[1].images[0] : "/file3_path.jpg"
data[1].images[1] : "/file4_path.jpg"

此请求基本上是从客户端应用程序上载对象数组的所有数据,并且对象将包含文本数据和图像数组。我可以接收到这些数据并能够解析数据和文件。

对于UrlEncoded-formData,我使用的是“ body-parser”模块和“ express”模块。

是否有满足上述要求的节点模块?

如果我想通过邮递员点击此请求,则它将如下所示: Request from Postman

1 个答案:

答案 0 :(得分:0)

使用multer中间件

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

var app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file is the `avatar` file
  // req.body will hold the text fields, if there were any
})

非文件字段会自动解析为req.body对象,类似于主体解析器。

检查文档以正确处理文件: https://www.npmjs.com/package/multer