Метод 2 должен выглядеть следующим образом:
router.get('/:param', async function(req, res) {
try {
let items = await Product.find({}).lean()
res.status(200).json(items);
} catch (e) {
res.status(404).json(e);
}
});
- Вам не нужно
.exec()
- Вам нужно использовать
.lean()
, если вы хотите получить js объект в элементах, а не мон goose. - Старайтесь не запрашивать всю коллекцию документов одновременно, особенно если в коллекции более 1000+ документов. В противном случае сделайте это через
.cursor
или limit(Number)
, чтобы избежать проблем с БД.
Также, как уже упоминалось выше, попробуйте использовать синтаксис async/await
и ES6. Это выглядит лучше.
И, пожалуйста, пометьте вопрос как ответивший, чтобы избежать пометки вашего вопроса.