3

我按照 node.js wiki 的说明安装了 node.js。所以我把 debian sid 源放在我的源列表和安装的节点中。之后,我使用来自 wiki 站点的 curl cmd 安装了 npm。我用 npm 安装了 socket.io。到目前为止,一切正常,没有任何错误。

但是当我尝试启动我的服务器时,我收到了这个错误:

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^ Error: Cannot find module 'socket.io'
    at Function._resolveFilename (module.js:320:11)
    at Function._load (module.js:266:25)
    at require (module.js:348:19)
    at Object.<anonymous> (/root/sockets/trunk/socketio/server.js:8:8)
    at Module._compile (module.js:404:26)
    at Object..js (module.js:410:10)
    at Module.load (module.js:336:31)
    at Function._load (module.js:297:12)
    at Array.<anonymous> (module.js:423:10)
    at EventEmitter._tickCallback (node.js:126:26)

我不知道为什么这不起作用?有人可以帮忙吗?

4

2 回答 2

5
  1. 转到项目文件夹。这是您运行 node your_server.js 的文件夹。
  2. 运行npm install socket.io。这将在该项目文件夹下添加一个名为 node_modules 的目录,不出所料,该项目的模块所在的位置。
  3. node your_server.js运行服务器。这次它会起作用;)。

享受!

于 2011-07-13T18:09:10.863 回答
0

您可以直接在您的 javascript 文件中引用 socket.io。

如果您使用npm install socket.io -g它安装了 socket.io,则应该将 socket.io 安装在 /usr/local/lib 下的 node_modules 目录中。所以从那里拿起socket.io。

因此,在您的脚本中,请参考 socket.io,如下所示:

var io = require('/usr/local/lib/node_modules/socket.io');

然后运行node /wherever_your_script_is/your_script.js

干杯。

PS 不确定 npm 过去是如何工作的,但今天上面的工作正常,我只是试了一下以确保。

于 2012-02-24T03:09:32.910 回答