Node.js 安装engine.io节点js时出现的问题

Node.js 安装engine.io节点js时出现的问题,node.js,socket.io,npm,engine.io,Node.js,Socket.io,Npm,Engine.io,我正在尝试安装engine.io () 我收到以下错误: C:\Windows\system32>npm install engine.io ws@0.5.0 install C:\Windows\system32\node_modules\engine.io\node_modules\ws (node-gyp rebuild 2> builderror.log) || (exit 0) C:\Windows\system32\node_modules\engine.io\no

我正在尝试安装
engine.io
()

我收到以下错误

C:\Windows\system32>npm install engine.io

ws@0.5.0 install C:\Windows\system32\node_modules\engine.io\node_modules\ws
(node-gyp rebuild 2> builderror.log) || (exit 0)


C:\Windows\system32\node_modules\engine.io\node_modules\ws>node "C:\Program File
s (x86)\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bi
n\node-gyp.js" rebuild
engine.io@1.5.1 node_modules\engine.io
├── base64id@0.1.0
├── debug@1.0.3 (ms@0.6.2)
├── engine.io-parser@1.2.1 (blob@0.0.2, arraybuffer.slice@0.0.6, after@0.8.1, ba
se64-arraybuffer@0.1.2, utf8@2.0.0, has-binary@0.1.5)
└── ws@0.5.0 (options@0.0.6, ultron@1.0.1, nan@1.4.3)
在此之后,我尝试执行这个js脚本

var engine = require('engine.io');
var server = engine.listen(80);

server.on('connection', function(socket){
  socket.send('utf 8 string');
  socket.send(new Buffer([0, 1, 2, 3, 4, 5])); // binary data
});
我得到这个错误

C:\Users\Ankur>node "e:\engine.js"
module.js:338
    throw err;
          ^
Error: Cannot find module 'engine.io'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (e:\engine.js:1:76)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)

C:\Users\Ankur>
C:\Windows\system32>节点“C:\users\user\documents\visual studio 2010\Projec ts\nodes\WebApplication1\NodeFiles\engineTest.js“
module.js:338
犯错误
^
错误:找不到模块“engine.io”
在Function.Module.\u解析文件名(Module.js:336:15)
在Function.Module.\u加载(Module.js:278:25)
在Module.require(Module.js:365:17)
在需要时(module.js:384:17)
反对。(c:\users\user\documents\visual studio 2010\Proje cts\node\WebApplication1\NodeFiles\engineTest.js:1:76)
在模块处编译(模块js:460:26)
在Object.Module._extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
位于Function.Module.runMain(Module.js:501:10)

--------------------------------------------------------------------------

事实上,我认为我做得不对。让我解释一下

首先,我认为
engine.io
的安装正如大家所建议的那样是正确的

现在,当我尝试从节点控制台运行命令
“var engine=require('engine.io');”
时,它工作得非常好,引擎变量用数据实例化


当我检查引擎时,它显示了我

C:\Users\Ankur>node
> var engine = require('engine.io');
undefined
> engine
{ [Function]
  protocol: 1,
  Server:
   { [Function: Server]
     errors:
      { UNKNOWN_TRANSPORT: 0,
        UNKNOWN_SID: 1,
        BAD_HANDSHAKE_METHOD: 2,
        BAD_REQUEST: 3 },
     errorMessages:
      { '0': 'Transport unknown',
        '1': 'Session ID unknown',
        '2': 'Bad handshake method',
        '3': 'Bad request' } },
  Socket: [Function: Socket],
  Transport: [Function: Transport],
  transports:
   { polling: { [Function: polling] upgradesTo: [Object] },
     websocket: [Function: WebSocket] },
  parser:
   { protocol: 3,
     packets:
      { open: 0,
        close: 1,
        ping: 2,
        pong: 3,
        message: 4,
        upgrade: 5,
        noop: 6 },
     encodePacket: [Function],
     encodeBase64Packet: [Function],
     decodePacket: [Function],
     decodeBase64Packet: [Function],
     encodePayload: [Function],
     decodePayload: [Function],
     encodePayloadAsBinary: [Function],
     decodePayloadAsBinary: [Function] },
  listen: [Function: listen],
  attach: [Function: attach] }
>
但是,当我在JS文件中写入该行,然后尝试使用node命令运行它时,它会中断。错误

C:\Users\Ankur>node "e:\engine.js"
module.js:338
    throw err;
          ^
Error: Cannot find module 'engine.io'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (e:\engine.js:1:76)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)

C:\Users\Ankur>
C:\Users\Ankur>节点“e:\engine.js”
module.js:338
犯错误;
^
错误:找不到模块“engine.io”
在Function.Module.\u解析文件名(Module.js:336:15)
在Function.Module.\u加载(Module.js:278:25)
at Module.require(Module.js:365:17)
根据需要(module.js:384:17)
反对。(e:\engine.js:1:76)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
位于Function.Module.runMain(Module.js:501:10)
C:\Users\Ankur>
我想我在做傻事


有人能帮我一下吗?

您已经在
C:\Windows\system32
目录下安装了
engine.io
模块。这意味着您在
system32
中有一个
node\u modules
文件夹,而不是在项目文件夹中。这不是你想要的

我建议你从头开始:

打开cmd并执行以下命令

  • 为项目创建文件夹:
    • mkdir测试项目
  • 导航到文本项目文件夹:
    • cd测试项目
  • 安装所需的模块,即
    引擎.io
    • npm安装引擎.io
  • 现在,您的项目文件夹中应该有一个名为
    node\u modules
    的文件夹
  • 在项目文件夹中创建包含内容的文件
    app.js
  • 运行
    app.js
    • node app.js

  • 你的应用程序现在应该可以运行了。

    错误是什么?在我看来,它是被安装的correctly@JAM:我已编辑问题并尝试全局安装。仍然显示:错误:找不到模块'engine.io',当我在windows上运行脚本时,经常缺少一个环境变量,导致找不到全局安装的模块。请您现在查看一下,我已经更新了问题。这个问题似乎是另外一个问题,我认为它的总结是,如果我将节点模块文件夹添加到环境变量的PATH变量中。。我不必将其单独安装在项目所在的文件夹中??您可以像这样全局安装模块:
    npm install-g
    。关于模块的更多信息。我按照您的建议将其作为一个带有-g的全局工具安装,并将我的脚本复制到一个新文件夹中。现在我试着从新文件夹运行它,作为e:\newfolder>node script.js->它再次抛出找不到module engine.io的错误