2013-01-23 96 views
1

我試圖在Backbone.js上關注Tomas Davis的tutorial,但我無法讓服務器運行。Nohm找不到Redis客戶端

他給出了一個啓用了CORS的標準node.js服務器和一個Redis數據庫。這裏的鏈接到他的GitHub:

- >https://github.com/thomasdavis/video-backbone-beginner-server

有一個進一步的問題,我解決了,所以你不得不更換:

nohm.setClient(redis); 

由:

​​

經過修復後,Nohm似乎連接到Redis,但仍然無法工作。以下是堆棧跟蹤:

{ name: 'Nohm Error', 
    message: 'Did not find a viable redis client in Nohm or the model: User' } 

/node-projects/backbone/node_modules/nohm/lib/properties.js:27 
    if (!this.properties[key]) { 
        ^
TypeError: Cannot read property 'firstname' of undefined 
    at Nohm.property (/node-projects/backbone/node_modules/nohm/lib/properties.js:27:23) 
    at Nohm.property (/node-projects/backbone/node_modules/nohm/lib/properties.js:22:23) 
    at Object.<anonymous> (/node-projects/backbone/example_server.js:110:6) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

儘管Redis服務器進程已啓動。 有誰知道如何讓服務器工作? 提前謝謝!

回答

2

對不起,遲到的答覆,希望它仍然有一定的幫助。

我不能100%確定這裏的問題不知道/node-projects/backbone/example_server.js:110是什麼。

但我最好的猜測是,當你等待連接時,你試圖用nohm做其他動作。 Nohm在客戶端設置之前嘗試訪問客戶端。

這會導致模型的init函數失敗,從而無法正確初始化內部變量(以及其他屬性)。

您需要等待所有模型交互,直到redis連接建立。或者你回到舊的方法:

nohm.setClient(redis); 

這應該排隊的redis命令,直到連接建立,如果我沒有弄錯。