在我下面的一个简单的MVC教程https://blog.logrocket.com/building-structuring-node-js-mvc-application/中构建一个登录认证系统.
直到几天前,我的代码中还有一个可以工作的序列化和反序列化部分
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser(async (id, done) => {
User.findById(id, (error, user) => {
done(error, user);
});
});
最近运行代码,我开始得到错误Model.findById() no longer accepts a callback
现在我明白了,新的方法将使用写异步和等待。然而,我无法找到一个样本在线指导我如何来写代码。我可以在这里得到帮助吗?
1条答案
按热度按时间ttisahbt1#
您的问题与其说是Passport问题,不如说是Mongoose问题,它现在使用promise而不是回调。
要转换代码,可以使用
async/await
处理promise,但仍需要调用passport.deserializeUser
提供的回调: