我正在尝试运行此示例(http://maxburstein.com/blog/realtime-django-using-nodejs-and-socketio/),但我收到此错误:
module.js:340
throw err;
^
Error: Cannot find module 'socket.io/node_modules/redis'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/felipemoran/Desktop/django-realtime-tutorial-master/nodejs/chat.js:7:13)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
到目前为止我做的是:
redis-server
上键入) - 确定python manage.py runserver
上键入,而在propper文件夹中) - 确定下一步是在第三个终端窗口上运行命令node chat.js
,而在示例文件的文件夹nodejs文件夹中,但是我收到此错误。
我在Mac OS X Maverics上,我从官方mac安装程序安装了node.js,并使用npm命令安装了socket.io。
我还尝试使用rpm install socket.io -g
运行rpm install -g socket.io
,sudo
,并从nodejs文件夹运行这些命令,但仍未成功。
谢谢!
答案 0 :(得分:2)
正在运行npm install socket.io
从npm安装最新版本,现在是1.1.0
。您的教程使用版本0.9
,并从那里更改为1.0
,包括如何使用Redis适配器。由于本教程不使用package.json来管理依赖关系,因此最终版本错误。
您可以升级服务器代码以使用最新的socket.io
(您需要安装socket.io-redis)或通过运行{{1来检查0.9
分支中的最新版本然后安装npm view socket.io versions
。
请删除全局安装,以后会导致你发白(npm install socket.io@0.9.17
)。