koa-multer连续调用两次Multer.diskStorage的问题

新手上路,请多包涵

const path = require('path');
const nanoid = require('nanoid');
const Multer = require('koa-multer');
const { AVATAR_PATH, PICTURE_PATH } = require('../constants/file-path');
// 第一次调用
const storage = Multer.diskStorage({
destination: (req, file, cb) => {

cb(null, AVATAR_PATH)

},
filename: (req, file, cb) => {

cb(null, nanoid.nanoid() + "_" + file.originalname + path.extname(file.originalname))

}
})

const pictureUpload = Multer({
storage
});
// 第二次调用
const storage1 = Multer.diskStorage({
destination: (req, file, cb) => {

cb(null, PICTURE_PATH)

},
filename: (req, file, cb) => {

cb(null, nanoid.nanoid() + '_' + file.originalname + path.extname(file.originalname))

}
})

const avatarUpload = Multer({
storage1
})

const pictureHandler = pictureUpload.single('picture');
const avatarHandler = avatarUpload.single('avatar');

// 使用avatarHandler作为中间件的时候,下一个中间件获取不到filename
module.exports = {
pictureHandler,
avatarHandler
}

阅读 1.2k
1 个回答
新手上路,请多包涵

试试
const avatarUpload = Multer({
storage:storage1
})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题