storage._handleFile is not a function 라는 에러가 뜨는데요,
검색을 해봐도 도저히 모르겠어요!!ㅠㅠㅠ..
우선 제 코드입니다.
multer.js입니다.
const multer = require('multer');
const multerS3 = require('multer-s3');
const { S3 } = require('@aws-sdk/client-s3');
const { v4: uuidv4 } = require('uuid');
const s3 = new S3({
credentials: {
accessKeyId: process.env.AWS_KEY,
secretAccessKey: process.env.AWS_PRIVATE_KEY,
},
});
const storage = multer({
storage: multerS3({
s3: s3,
acl: 'public-read-write',
bucket: 'plant-newjeans/gallery',
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, { fileName: file.fieldname });
},
key: function (req, file, cb) {
var filename = uuidv4();
var ext = file.mimetype.split('/')[1];
if (!['png', 'jpg', 'jpeg', 'gif', 'bmp'].includes(ext)) {
return cb(new Error('Only images are allowed'));
}
cb(null, Date.now().toString() + filename);
},
}),
}).array('files', 3);
// module.exports = upload;
module.exports = multer({
storage: storage,
limits: { fileSize: 5 * 1024 * 1024 },
});
사용은 이런식으로 해주고있어요
const upload = require('../../middleware/multer');
/** 게시글 작성 */
router.post('/', isLogin, upload.array('images'), async (req, res) => {
...
}
정확하게 어느부분에서 에러가난다는 로그는없고 에러메시지는 달랑 저거입니다.
검색을하고 챗지피티를 돌려봐도 오리무중인데 혹시 뭘 의심해봐야하나요?
코드를 잘못 쓴걸까요?..