我正在尝试创建一个新的访问令牌对象。在调试器中,我可以看到正确返回user._id值。但是,当分配给令牌用户字段时,token.user._id的值是未定义的,而token.user.id是一些垃圾值。即使在保存令牌后也会观察到相同的行为。
exports.create = function(user, client, deviceId, done) {
if (!user) return done(new Error('Failed to create client without user'));
var token = new AccessToken({
user: user._id,
client: client._id,
deviceId: deviceId
});
token.save(function(err) {
if (err) return done(err);
return done(null, token);
});
};
答案 0 :(得分:3)
用
@Component
您已将用户的ID分配给var token = new AccessToken({
user: user._id,
client: client._id,
deviceId: deviceId
});
,因此您可以将其与user
一起使用。
如果您想使用token.user
访问用户的ID,请执行以下操作:
token.user._id
但在查询访问var token = new AccessToken({
user: user,
client: client._id,
deviceId: deviceId
});
.populate('user')
答案 1 :(得分:0)
在mongoose中,您使用.id
作为字符串访问._id
字段。
What is the difference between id and _id in mongoose?