我有一個簡單的函數,它傳遞HTTP查詢模式,查詢redis併發送響應。以下是代碼Javascript替代項此對象
router.get('/getinfo/:teamname', function main(teamname) {
rclient.hgetall(teamname,function(err,obj){
console.log("the response from redis is ",obj)
cache.put(eventname,obj);
console.log("inserting to cache");
this.res.end(obj); // this object is root cause for all problems
});
}
路由器對象afaik使用this.res.end(obj)
發送響應。我想因爲我正在嘗試在我的redis客戶端中執行此操作,所以出現錯誤。有沒有其他方式發送價值作爲迴應?我想到了使用基於發射器的模型,其中通道發出響應並且偵聽器得到它。但感覺就像解決這個問題的一個方法。有沒有更簡單的方法?
是否有'res'可用於任何附帶的函數中? – thefourtheye
請記住,JavaScript是異步的。所以,在你的回調中「這個」可能不是這個「你」,除非是這樣。也許它是從'rclient'對象內引用'this'。 – alpham8