找不到模块socket.io

时间:2014-05-14 15:12:07

标签: node.js socket.io

我对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模块路径。不幸的是,所有这些解决方案都没有解决这个问题。

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

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:1)

问题是npm install socket.io安装的软件包不仅仅是模块本身,还带来了一些示例和更多内容。

安装时,npm会创建一个node_modules文件夹。 在该文件夹中,有一个名为socketio的文件夹。 在那个内部,还有另一个名为node_modules的文件夹。 在这个内部,有一个名为socket.io的文件夹。 将此文件夹(socket.io)移动或复制到脚本所在的第一个node_modules文件夹内。 Et voilla,它有效!

folder levels