Мангуст !findOne

#javascript #mongodb #mongoose

#javascript #mongodb #мангуст

Вопрос:

Почему мой первый оператор всегда возвращает false, когда я создаю код, которого нет в коллекции «Courses»?

 // POST /api/my/courses
app.post('/api/my/courses', function(req, res) {
  let courseCode = req.body.courseCode.toUpperCase();
  let status = req.body.status;

  if (!Courses.findOne({ courseCode })) {
    res.status(404).send({ "message": "Course not found." })
  } else {
    let course = new MyCourses({
      courseCode: courseCode,
      status: status
    });

    course.save(function(err) {
      if(err) return console.error(err);
    });

    res.status(201).send({ "message": "New course added." });
  }
});
 

Ответ №1:

Вы должны ожидать findOne , и save поскольку они оба возвращают обещания. Или вы также можете передать функцию обратного вызова в findOne качестве 2-го аргумента. Обратитесь к этому