我正试图在Backbone.js上关注Tomas Davis的tutorial,但我无法让服务器运行。
他给出了一个标准的node.js服务器,它启用了CORS和一个Redis数据库。这是他的GitHub的链接:
- > https://github.com/thomasdavis/video-backbone-beginner-server
我解决了另外一个问题,所以你必须更换:
nohm.setClient(redis);
by:
redis.on("connect", function() {
nohm.setClient(redis);
console.log("Nohm Connected to Redis Client");
})
在修复之后,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服务器进程已启动。 有谁知道如何使服务器工作? 提前谢谢!
答案 0 :(得分:2)
很抱歉迟到的回复,希望它仍然会有所帮助。
如果不知道/node-projects/backbone/example_server.js:110是什么,我不能100%确定这里的问题是什么。
但我最好的猜测是,当你等待连接时,你正试图用nohm做其他的动作。 Nohm然后在设置客户端之前尝试访问客户端。
这会导致模型的init函数失败,从而无法正确初始化内部变量(以及其他属性)。
您需要等待所有模型交互,直到建立redis连接。或者你回到旧的方法:
nohm.setClient(redis);
这应该排队redis命令,直到建立连接,如果我没弄错的话。