backbone.js Nohm找不到Redis客户端

mcvgt66p  于 2022-11-10  发布在  Redis
关注(0)|答案(1)|浏览(140)

我尝试在Backbone.js上跟踪Tomas Davis的tutorial,但无法使服务器运行。
他给出了一个标准的node.js服务器,并启用了CORS和Redis数据库。
--〉https://github.com/thomasdavis/video-backbone-beginner-server
还有一个问题我解决了,所以你必须替换:

nohm.setClient(redis);

签署人:

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服务器进程已经启动了。有人知道如何让服务器工作吗?提前谢谢!

v8wbuo2f

v8wbuo2f1#

很抱歉回复的太晚了,希望能对你有所帮助。
在不知道/node-projects/backbone/example_server.js:110是什么的情况下,我不能100%确定这里的问题是什么。
但我最好的猜测是,当您等待连接时,您正在尝试使用nohm执行其他操作。然后,Nohm尝试在客户端设置之前访问客户端。
这会导致模型的init函数失败,从而无法正确初始化内部变量(以及其他属性)。
你需要等待所有的模型交互,直到redis连接建立。或者你恢复到旧的方法:

nohm.setClient(redis);

如果我没记错的话,这应该会将redis命令排队,直到建立连接。

相关问题