Обещание удаления возвращает значение undefined при удалении записи. (NodeJS, Express, монго / монах) - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь написать функцию, которая получает ключ от внешнего интерфейса, проверяет, соответствует ли этот ключ ключу на внутреннем интерфейсе, и если да, удаляет эту запись, а затем отвечает сообщением о состоянии на внешний интерфейс.

Проблема в том, что я продолжаю получать "undefined" в моем операторе .then.

Это мой индекс. js файл:

const jobs = require("./db/models/jobs");

app.delete("/jobs/:id", (req, res) => {
  var uid = req.params.id;
  var enteredPassword = req.body.enteredPassword;

  jobs.removeWithPassword(uid, enteredPassword)
    .then((job) => {
      res.json(200);
      res.json(job);
    })
    .catch((error) => {
      res.status(500);
      res.json(error);
    });
});

А это my jobs. js файл, в котором записан метод удаления:

const jobs = db.get("jobs");

function removeWithPassword(job_uid, enteredPassword) {
  jobs.find({ _id: job_uid })
    .then(result => {
      const job = result[0];

      if (job.password === enteredPassword) {
        console.log("the password matches");
        jobs.remove({ _id: ObjectId(job_uid) })
          .then(result => result);
        return result;
      } else {
        console.log("the password doesn't match");
      }
  });
}

module.exports = {
  removeWithPassword
};
...