0
我app.js看起来是这样的:快速的NodeJS框架此关键字
var expressJwt = require('express-jwt');
var session = require('redis-sessions');
app.use('/events', expressJwt({secret: secret}), session.verifyToken, events);
session.verifyToken是一个自定义modue对Redis的数据库进行检查,看是否令牌已过期。
我为我的模块工作写的所有测试,所以session.verifyToken在我从摩卡测试时工作。
//verifyToke function
RedisSessions.prototype.verifyToken = function(req, res, next){
var token = this.extractToken(req.headers['authorization']);
this.containsToken(token, function(err, contains){
if(contains == 1){
next();
}else{
res.send(401);
}
});
}
,并在最后导出我RedisSession模块是这样的:
module.exports = new RedisSessions();
但是,当请求是通过快递进来我得到的这条线500内部错误。
var token = this.extractToken(req.headers['authorization']);
的事情是,在this
关键字的范围是完全关闭,在范围,应该只有我RedisSessions对象,而是是孔快递框架。
任何人都可以请解释为什么这个关键字关闭?
TNX,我用.bind(会话),似乎有点更好的解决方案 – 2014-09-02 12:54:49
我真的很喜欢的那优雅后一种方法。这正是我需要的。固体! – Dan 2014-09-30 01:02:21
我有同样的问题,“绑定”修复它,不知道如何避免使用'绑定',thx很多 – 2016-02-06 07:12:42