我有一個興亞2應用程序和崗位/註冊由該函數處理:貓鼬異步/與興亞等待獲得上等待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
啊對不起..複製一箇舊的代碼..但也不工作......並且沒有例外......並且已經修復了兩個電話......謝謝 –