【问题标题】:cannot find module socket.io找不到模块 socket.io
【发布时间】:2014-07-02 17:50:00
【问题描述】:

我对 nodejs 和 socket.io 还是很陌生。当时我对nodejs一无所知。我遇到了一个可怕的错误。

我安装 nodejs 的整个步骤(在 Windows 7 上):

- Access nodejs.org and click to their green download button.
- Install nodejs in F:/nodejs
- Install socket.io with command npm install socket.io
- Install node supervisor with command npm install supervisor -g

就是这样。然后我尝试在这一行中使用 socket.io:

var io = require('socket.io').listen(app);

它输出一个错误:

Error: Cannot find module 'socket.io'
    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> (F:\nodejs\chat.js:8:10)
    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)

我已经尝试了所有建议的方法,例如清理缓存、重新安装 nodejs 或更改 socket.io 模块路径。不幸的是,所有这些解决方案都没有解决这个问题。

这个可怕的错误杀死了我一整天。我非常感谢任何帮助。

【问题讨论】:

标签: node.js socket.io


【解决方案1】:

尝试在 node.js 文件所在的文件夹(需要模块的位置)中执行 npm install socket.io。 npm 会在您执行 npm install socket.io 的任何位置创建一个文件夹 node_modules,而您可能没有在正确的文件夹中执行此操作。

npm install supervisor -g 确实有效,因为 -g 是全局标志,您基本上可以在任何地方执行此操作。

【讨论】:

  • @pennstatephil 是的主管不是 socket.io 虽然
  • 我做了你的建议。什么都没有改变。
  • @user3247703 你能确认你在项目的根文件夹中看到 node_modules 文件夹和 socket.io 文件夹 init 吗?
  • 我已经使用此代码 console.log(module.paths) 检查了模块路径。这就是结果F:\\nodejs\\node_modules, F:\\node_modules
  • 我的socket.io文件夹被放置在npm app,在windows appData文件夹中
【解决方案2】:

问题是npm install socket.io安装的包不仅仅是模块本身,还带来了样例等东西。

安装时,npm 会创建一个node_modules 文件夹。 在该文件夹内,有一个名为 socketio 的文件夹。 在其中,还有另一个名为 node_modules 的文件夹。 在这个里面,有一个名为 socket.io 的文件夹。 将这个文件夹 (socket.io) 移动或复制到脚本所在的第一个 node_modules 文件夹内。等等,它的工作原理!

【讨论】:

    猜你喜欢
    • 2021-02-16
    • 1970-01-01
    • 2023-04-03
    • 2011-12-13
    • 2014-09-18
    • 2012-05-22
    • 2012-04-10
    • 2014-01-02
    相关资源
    最近更新 更多