Node.js I';我对使用multer-s3将图像上传到aws s3 bucket完全不感兴趣

Node.js I';我对使用multer-s3将图像上传到aws s3 bucket完全不感兴趣,node.js,express,multer-s3,Node.js,Express,Multer S3,下面代码中的“upload.array('photos',3)”表示什么 我的html代码。(为简洁起见,代码减少) 输出: Cannot read property 'length' of undefined 有两个问题: 文件字段名为“pic”,而不是“photos”(这是Express端使用的字段名)。更改一个名称或另一个名称 需要在标记上显式设置enctype=“multipart/form data”属性,否则浏览器将以application/x-www-form-urlenco

下面代码中的“upload.array('photos',3)”表示什么

我的html代码。(为简洁起见,代码减少)

输出:

 Cannot read property 'length' of undefined
有两个问题:

  • 文件字段名为“pic”,而不是“photos”(这是Express端使用的字段名)。更改一个名称或另一个名称

  • 需要在
    标记上显式设置
    enctype=“multipart/form data”
    属性,否则浏览器将以application/x-www-form-urlencoded的形式发送表单,其中不包括文件输入数据


进行这些更改后,应按照
multer
文档中的概述填充
req.files

感谢您的回复mscdex,“upload.array(“pic”,3)”。。。那么3代表的是。。。。。解释它,它是
maxCount
参数(强制该文件字段名的最大文件限制)。相同的错误“无法读取未定义的属性'length'”,即使在将照片更改为pic之后。。。。。对不起,我已经更新了我的答案,以包含关于另一个问题的信息。@mscdex嗨,你能看一下这个问题吗。非常感谢你的帮助。
AWS.config.update({
  accessKeyId: "xxxxxxxxxxxxx",
  secretAccessKey: "yyyyyyyyyy", 
  "region": "zzzzzzzzz" ,
  signatureVersion: 'v4'
});

var s3=new AWS.S3();

var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'imgcontainer',
    metadata: function (req, file, cb) {
      cb(null, {fieldName: file.fieldname});
    },
    key: function (req, file, cb) {
      cb(null, Date.now().toString())
    }
  })
})

app.post('/upload', upload.array('photos', 3), function(req, res, next) {
  res.send('Successfully uploaded ' + req.files.length + ' files!')
})
 Cannot read property 'length' of undefined