NodeJS > Express> AWS > S3 > получение запроса res.send() объекта, вероятно, с задержкой обещания

#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);
  });