错误:找不到模块' socket.io/node_modules/redis'在Mac上

时间:2014-09-09 00:23:59

标签: django node.js macos redis socket.io

我正在尝试运行此示例(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服务器(通过在终端redis-server上键入) - 确定
  • 启动Django服务器(通过在另一个窗口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.iosudo,并从nodejs文件夹运行这些命令,但仍未成功。

谢谢!

1 个答案:

答案 0 :(得分:2)

正在运行npm install socket.ionpm安装最新版本,现在是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)。