Приложение использует basi c Node.js, Express и MongoDB для возврата некоторых данных по разным маршрутам.
Маршрут:
router.get('/api/v1/:collection', (req, res, next) => {
try {
const data = ApiController.getAllRecipes(req, res, next);
console.log(data);
res.send(data);
} catch(error) {
res.send(error);
}
});
Методы, которые запрашивают база данных содержится в простом контроллере:
module.exports = {
getAllRecipes: async (req, res, next) => {
try {
req.app.db.collection(req.params.collection).find({}).toArray((error, result) => {
if (result.length > 0) {
console.log(result);
return result;
} else {
let error = new Error();
error.statusCode = 404;
error.message = 'No API results found.';
next(error);
}
});
} catch (error) {
next(error);
}
}
};
Внутри контроллера console.log(result);
возвращает правильные данные, которые я хотел бы обработать в файле маршрута. Однако console.log(data);
в файле маршрута возвращает undefined
, даже в пределах блока try/catch
.
Я что-то упускаю при передаче данных с контроллера обратно на маршрут? Спасибо:)