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