【问题标题】:Error: Cannot find module 'socket.io/node_modules/redis' on Mac错误:在 Mac 上找不到模块“socket.io/node_modules/redis”
【发布时间】:2014-11-02 07:22:54
【问题描述】:

我正在尝试运行此示例 (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 -grpm install -g socket.io,这两个使用sudo 并从nodejs 文件夹运行这些命令,但仍然没有成功。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    运行npm install socket.io 会从npm(现在是1.1.0)安装最新版本。您的教程使用版本 0.9 并且从该版本到 1.0 进行了很多更改,包括如何使用 Redis 适配器。由于本教程没有使用 package.json 来管理依赖项,因此您最终得到了错误的版本。

    您可以升级您的服务器代码以使用最新的socket.io(您需要为此安装socket.io-redis)或通过运行npm view socket.io versions0.9 分支检查最新版本,然后安装npm install socket.io@0.9.17 .

    请移除全局安装,它们稍后会导致你白发 (npm uninstall -g socket.io)。

    【讨论】:

    • 哦,一定是这个原因!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 2023-04-03
    • 2017-12-05
    • 1970-01-01
    • 2012-04-10
    • 2018-12-05
    • 2017-01-22
    • 2018-06-06
    相关资源
    最近更新 更多