2015-02-27 1 views
0

Я пытаюсь установить engine.io (https://www.npmjs.com/package/engine.io)вопросы при установке engine.io узла JS

я получаю следующую ошибку :

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

[email protected] 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 
[email protected] node_modules\engine.io 
├── [email protected] 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected], [email protected], ba 
[email protected], [email protected], [email protected]) 
└── [email protected] ([email protected], [email protected], [email protected]) 

После этого я пытаюсь выполнить этот скрипт 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:\Windows\system32>node "c:\users\user\documents\visual studio 2010\Projec ts\nodes\WebApplication1\NodeFiles\engineTest.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. (c:\users\user\documents\visual studio 2010\Proje cts\node\WebApplication1\NodeFiles\engineTest.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)

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

На самом деле, я думаю, что я ничего не делаю правильно. Позвольте мне объяснить

Прежде всего, я считаю, что установка engine.io верна, как и все вы предлагаете.

Теперь, когда я пытаюсь запустить команду "var engine = require('engine.io');" с консоли узла, она отлично работает, и переменная engine создается с данными.


Когда я проверяю двигатель, это показывает мне.

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, а затем попытаться запустить его с помощью команды узла он ломает. Ошибка

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> 

Я думаю, что я делаю что-то глупое.

Может кто-нибудь, пожалуйста, помогите мне?

+1

Какая ошибка? мне кажется, что он был установлен правильно – JAM

+0

@JAM: я отредактировал вопрос – ankur

+0

как исправить его – ankur

ответ

0

Вы установили модуль engine.io под каталогом C:\Windows\system32. Это означает, что у вас есть папка node_modules в systems32, а не в папке вашего проекта. Это не то, что вы хотите.

Я бы порекомендовал вам начать с нуля:

Открыть ЦМД и выполните следующие команды

  1. Создайте папку для вашего проекта:
    • mkdir testproject
  2. Navigate в папка с текстовыми проектами:
    • cd testproject
  3. Установите необходимые вам модули, т.е.engine.io:
    • npm install engine.io
  4. Теперь вы должны иметь папку с именем node_modules в папке проекта
  5. Создайте файл app.js в папке проекта с контентом.
  6. Run app.js
    • node app.js

Ваше приложение должно работать.

+0

, поэтому я думаю, что она суммируется, так как это то, что если бы я добавил папку узлов в переменной PATH в переменных среды .. мне не пришлось бы устанавливать ее отдельно в папке, где моя проект расположен ?? – ankur

+0

Вы можете установить модуль по всему миру следующим образом: 'npm install -g '. Подробнее о модулях [здесь] (http://nodejs.org/api/modules.html#loading_from_node_modules_Folders). – JAM

+0

Я установил его как глобальную вещь с -g, как вы предложили и скопировали мой скрипт в новой папке. теперь я попытался запустить это из новой папки как e: \ newfolder> node script.js -> он снова выдает ошибку, которая не может найти модуль engine.io – ankur