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

Как найти объект по полю в mongodb?

Добрый день! Как можно есть запрос по которому нужно найти объект в модели продуктов:
Код

module.exports.getById = function (req, res) {
    Product.findOne({ url: req.params.url }, (err, doc) => {
        if (err) {
            return errorHandler(res, 404, 'Ошибка! Товар не найден', err)
        }

       res.status(200).send(doc)
    })
}


При выборке по _id, если он не находит в базе данных продукт, то возвращает ошибку 404. Если же делать выборку по url полю, то он возвращает null и отрабатывает дальше. Как можно избавиться от такого поведения и возвращать 404 ошибку?
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
hzzzzl
@hzzzzl
module.exports.getById = async function (req, res) {
  try {
    const product = await Product.findOne({ url: req.params.url })
    if (!product) {
      throw new Error()
    } 
  catch {
    return errorHandler(res, 404, 'Ошибка! Товар не найден', err)
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
if (err || !doc) ?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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