Я экспортирую объект. Вот мой файл с именем «token.js»Почему я получаю это ... не функция Ошибка?
var jwt = require('jsonwebtoken');
const secret = "mysecret"
module.exports = {
generate : function(id){
return jwt.sign({id:id},secret);
},
verify : function(token, callback){
jwt.verify(token, secret,callback);
},
authenticateUser: function(req,res,next){
var token = req.method =="GET" ? req.query.token : req.body.token;
if(!token) return this.authenticationFailure (req,res);
this.verify(token, function(err,user){
if(err) return this.authenticationFailure (req,res);
req.body.user = user;
next();
});
},
authenticationFailure : function(req,res){
res.json({response:"Failed to authenticate"});
}
}
Тогда из моего приложения я запросить этот файл, то генерировать метод и проверить метод работает отлично вызывается из API напрямую. Проблема возникает, когда я вызываю authenticateUser, метод вызывается, но когда метод, называемый «this.authenticationFailure» или «this.verify», он возвращает ошибку, что они не являются функциями. Они кажутся мне функциями, что я делаю неправильно?
Можете ли вы добавить код, где вы называете функции? – nils
У вашего обратного вызова для 'this.verify' на' authenticateUser' есть другой контекст для 'this'. – MinusFour