在mongoose方法

时间:2017-06-27 09:46:00

标签: node.js mongoose

我使用节点使用令牌进行身份验证但是收到错误

  

错误500:无法读取未定义的属性

这是我的代码

功能findByToken()

var User = this;

    var decoded;

try {
    jwt.verify(token, 'abc');
} catch(e) {
    return Promise.reject();
}

return User.findOne({
    '_id': decoded._id,
    'tokens.token': token,
    'tokens.access': 'auth' 
});

此函数将token作为参数,并将数据发现到数据库中。

路线

app.get('/users/me', (req,res) => {

var token = req.header('x-auth');

User.findByToken(token).then((user) => {

    res.send(req.user);

}).catch((e) => {
    res.send(e);
});


});

这是我使用我的函数返回数据的路线。但是得到500错误请帮助我。

1 个答案:

答案 0 :(得分:0)

你应该使用静态方法

例如:

animalSchema.statics.findByName = function(name, cb) {
return this.find({ name: new RegExp(name, 'i') }, cb);
};