Сервер не ждет ответа от БД (монгоDB) в контроллере, но в него заходит - тк отрабатывает консоль (req.user), потом, добавляет в очередь задач запрос в бд, но не ждет сразу ответа и идет до последнего обработчика и отправляет клиенту ошибку 404, и только потом получает ответ от бд - консоль currUser, пытается снова отправить ВТОРОЙ ответ консоль 'tut4' и соответственно выдает "Cannot set headers after they are sent to the client", и падает в ошибку консоль 'tut5'
Ps на последнем скрине реализация через try/catch + async/await тоже не дала нужного результата
module.exports.getCurrentUser = async (req, res, next) => {
try {
console.log(req.user);
const currentUser = await User.findById(req.user._id);
console.log(`currUser: ${currentUser}`);
if (!currentUser) {
console.log('tut3');
throw new NotFoundError(ERROR_NOTFOUND_MESSAGE_USER);
} else {
console.log('tut4');
return res.status(httpConstants.HTTP_STATUS_OK).send(currentUser);
}
} catch (err) {
console.log('tut5');
if (err instanceof mongoose.Error.ValidationError) {
return next(new BadRequest(ERROR_NOTFOUND_MESSAGE_USER));
} else {
return next(err);
}
}
};
Ссылка на Гх: