Задать вопрос
@xutegino

Как возвращать сообщение, если ничего не найдено?

Я использую сервер на ExpressJS. Есть такой обработчик:

router.get('/articles/:section', Article.getArticlesBySection)

exports.getArticlesBySection = (req, res, next) => {
  Article.find({section: req.params.section})
    .then((articles) => {
      if (!articles) {
        // FIX THIS
        return res.status(404).json({
          message: 'Articles doesn\'t exist'
        })
      }
      return res.status(200).json(articles)
    })
    .catch((err) => {
      return next(err)
    })
}


Всего у меня существует 3 section. Я хочу возвращать сообщение юзеру, если вдруг случается обращение по роуту, имя которого не совпадает с моими section. Проблема в том, что если .find ничего не находит, то это не срабатывает

if (!articles) {
        // FIX THIS
        return res.status(404).json({
          message: 'Articles doesn\'t exist'
        })
      }


И он возвращает пустой массив вида []
Как обработать это? Может быть мне надо использовать другой метод Монгуса? Потому что .findOne отрабатывает как задумано с аналогичным кодом (я его использую если неправильный адрес конкретной заметки.
  • Вопрос задан
  • 246 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@AnneSmith
самая ленивая
проверять длину массива?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы