我试图从请求中的护照用户对象访问mongoose模型中定义的一些虚拟属性,但我得到的只是持久字段。
有没有办法在不再查询的情况下获取虚拟属性?
修改
模型:
var UserSchema = new Schema({
firstname: {
type: String,
},
lastname: {
type: String,
},
email: {
type: String,
},
password: {
type: String,
required: true
},
});
UserSchema.virtual('fullName').get(function() {
return (this.firstname + this.lastname);
});
module.exports = mongoose.model('User', UserSchema);
用户控制器:
exports.sayHi = function(req, res, next) {
res.send('Hi ' + req.user.fullName);
}
护照配置:
var User = mongoose.model('User');
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findOne({
_id: id
},
'-password',
function(err, user) {
done(err, user);
}
);
});