-2
私は約束の外の変数に値を設定しようとしています。 しかし、ときに私は、私はここでそのundefined
約束の外で変数の値を取得するには?
が私のコードである理由私は理解していない約束外の変数を定義し 、それはundefined
を出力値をチェックし、あなたがそれを私に役立つことを願って:
UserSchema.statics.findByToken = function (token) {
var User = this;
var decoded;
try{
decoded = jwt.verify(token, 'secret');
} catch (err){
if(err.name === 'TokenExpiredError'){
var refreshToken;
User.findOne({
'tokens.token': token,
'tokens.access': 'auth'
}).then((user) => {
User.findOne({
'tokens.token': token,
'tokens.access': 'auth'
}).then((user) => {
var access = 'auth';
token = jwt.sign({_id: user._id.toHexString(), access}, 'secret', { expiresIn: 30 }).toString();
refreshToken = token; // set value to refreshToken
user.tokens.push({access, token});
user.save().then(() => {
token = refreshToken;
});
});
});
console.log(refreshToken); // refresh is undefined
return Promise.reject({errName: 'TokenExpiredError', token: refreshToken});
}
return Promise.reject();
}
return User.findOne({
_id: decoded._id,
'tokens.token': token,
'tokens.access': 'auth'
})
}
どうすればいいですか? – zb22