У меня есть Коа 2 приложения, а после к/регистрации осуществляются с помощью этой функции:Mongoose асинхронными/жду с Коа застревают на поджидают Model.findOne() Exec()
import User from 'models/user';
export const signup = async (ctx, next) => {
const { email, password } = ctx.request.body;
try {
const existingUser = await User.findOne({ email });
if (existingUser) {
ctx.body = { error: 'Email is in use' };
return next();
}
const user = new User({
email,
password,
});
await user.save();
ctx.body = { success: true };
} catch (e) {
next(e);
}
return next();
};
FUNTION получает правильные данные, но await User.findOne().exec();
никогда не возвращается и застревает.
Я думаю, проблема в том, что если я удалю, код выполняется нормально. Если я переключусь на Promise, как ... find().then
Он тоже работает. асинхронный/ждет работают либо, потому что если я изменяю к AWAIT выборки() (для эмуляции асинхр) он работает ... но вот мое столпотворение конфигурация
{
"presets" : ["latest", "stage-0"],
"plugins": [
["module-resolver", {
"root": ["./src"]
}]
]
}
мангуст является версией 4.7.0
Ваш код не показывает вам использование '.exec()' (хотя, вероятно, его не обязательно использовать). Кроме того, вы уверены, что это не исключение? Ваш код вызывает 'next' дважды, когда возникает исключение (один раз с аргументом ошибки, а затем с' return next'). – robertklep
ah извините .. скопировал старый код .. но не работает ни ... и никаких исключений ... и уже исправил два звонка ... спасибо –