【发布时间】:2018-03-18 14:57:46
【问题描述】:
我想使用 Mongoose 将我的护照 oAuth 记录保存到数据库中,或者在它已经存在时忽略它。但是,我的 then() 回调函数会切换传递参数的顺序,并放入查询结果而不是错误。
passport.use(new GoogleStrategy({
clientID: confKeys.googleAuth.client_id,
clientSecret: confKeys.googleAuth.client_secret,
callbackURL: confKeys.googleAuth.redirect_uris[0]
},(accessToken, refreshToken, profile, done) => {
User.findOne({ googleID: profile.id }).then((err, existingUser) => {
console.log(existingUser) // here I get undefined even if user exists in database
console.log(err)// here I get data for the user
if(existingUser){
done(err, existingUser);
}else{
console.log('new user');
new User({googleID: profile.id}).save()
.then((err,user) => done(err, user));
};
});
}
));
在文档中错误参数应该是第一个,查询的结果是第二个。我不能只是更改参数的名称并克服,因为护照会给我一个承诺错误。我该如何修复这个错误?
【问题讨论】:
标签: node.js mongodb passport.js