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
}
试试
const avatarUpload = Multer({
storage:storage1
})