#node.js #amazon-s3
#node.js #amazon-s3
Вопрос:
Я пытаюсь работать, я получаю объект в console.log (данные, «MongoData—>»), но получаю пустой объект в качестве ответа на стороне клинта
Promise {
{ _id: 5f44ed71ae6ebea2d14a9808,
name: 'https://rsboost.s3.amazonaws.com/sn3-1598352752273.png' } } 'MongoData--->'
RouteFile
router.post("/",async function(req, res, next){
ImgUpload(req, res,(error) => {
if (error) {
console.log("errors", error);
res.json({ error: error });
} else {
// If File not found
if (req.file === undefined) {
console.log("Error: No File Selected!");
res.json("Error: No File Selected");
} else {
// If Success
const imageLocation = req.file.location; // Save the file name into database into File model
const data = await CreateFile({name:imageLocation})
console.log(data,"MongoData--->")
res.json(data)
}
}
})
});
Функция Aws возвращает правильные данные
const ImgUpload = multer({
storage: multerS3({
s3: s3,
bucket: "*****",
acl: "public-read",
key: function (req, file, cb) {
cb(
null,
path.basename(file.originalname, path.extname(file.originalname))
"-"
Date.now()
path.extname(file.originalname)
);
},
}),
limits: { fileSize: 20000000 }, // In bytes: 2000000 bytes = 20 MB
fileFilter: function (req, file, cb) {
checkFileType(file, cb);
},
}).single("fileImage");
Проблема: получение желаемого ответа с данными, но с недостаточным обещанием, нужна помощь в написании обещания, поскольку я пробовал async-await, но это не работает
Заранее спасибо
Комментарии:
1. что такое
CreateFile()
?2. Это модальная функция, извлекающая данные из MongoDB, вот что задерживает выполнение обещания
Ответ №1:
решил это сам > в файле маршрута> .then () => это решение для ожидания обещания, мелочь, которую я пропустил
const data = CreateFile({ name: imageLocation }).then((data) => {
res.send(data);
});