I try to upload file from NodeJS to my S3 bucket. The next code works fine.
./routes/lessons.js
const upload = require('../models/model.lessons');
router.post('/upload9', upload.array('file', 1), (req, res) => {
console.log('Uploaded');
res.send({image: req.file});
});
./models/model.lessons.js
const upload = multer({
storage: multerS3({
acl: 'public-read',
s3,
bucket: config.get('AWS.bucket_audios'),
key: function (req, file, cb) {
req.file = Date.now() + file.originalname;
cb(null, Date.now() + file.originalname);
}
})
})
My problem is I want to do additional things before and after uploading. When I try to move the upload.array inside the model.lessons.js code I got error. What am I doing wrong ?
./routes/lessons.js
router.post('/upload', async function (req, res, next) {
try {
let result = await Lessons.upload2(req, res);
console.log('uploaded');
await res.send(result);
} catch (err) {
console.log(err);
res.status(400).json(err);
}
});
./models/model.lessons.js
upload2: async function (req, res) {
// some code
var result = await multer({
storage: multerS3({
acl: 'public-read',
s3,
bucket: config.get('AWS.bucket_audios'),
key: function (req, file, cb) {
req.file = Date.now() + file.originalname;
cb(null, Date.now() + file.originalname);
}
})
}).array('file', 1);
// some code
return true;
},