Маршрут ловит пустую ошибку (User.findOne) - PullRequest
2 голосов
/ 06 апреля 2020

Я почти уверен, что это должно быть легко исправить, но я понятия не имею, почему это происходит, я использую nodejs и mongodb здесь.

Это маршрут, по которому я звоню и когда я делаю это, он просто возвращает 404 с пустым объектом. Я уверен, что это не потому, что он не может найти пользователя с адресом электронной почты, потому что userFound будет нулевым в этом случае. Но я не мог понять, почему он напрямую ловит пустую ошибку или что-то в этом роде?

router.post("/notify", function (req, res) {
  User.findOne({ email: req.body.email }).then((userFound) => {
      const notification = {
        type: req.body.type,
        title: req.body.title,
        description: req.body.description,
      };
      notification.destination = userFound;
      Notification.save(function (err, notification) {
        if (err) {
          console.log(err);
          res.status(500).send();
        } else {
          res.send(notification);
        }
      });
    })
    .catch((error) => {
      return res.status(404).json(error);
    });
});

Извините, я действительно чувствую себя глупо, спрашивая это .. Спасибо за помощь заранее.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Ну, во-первых, благодаря вашей помощи, ребята, оказалось, что я действительно сделал что-то очень глупое, я на самом деле звонил Notification.save() вместо константного имени notification.save(), поэтому я получил Notification.save is not a function ошибка

0 голосов
/ 06 апреля 2020

Попробуйте добавить следующее в параметры вашей функции обратного вызова:

router.post("/notify", function (req, res, next) {
  User.findOne(...)
    .catch((error) => next(error));
});
...