简体   繁体   中英

node.js websocket module installed but won't work in scripts

I just installed node.js + microsoft visual to be able to install the websocket, it installed fine:

C:\Users\Administrator>npm install websocket
npm http GET https://registry.npmjs.org/websocket
npm http 304 https://registry.npmjs.org/websocket

> websocket@1.0.8 install C:\Users\Administrator\node_modules\websocket
> node install.js

[websocket v1.0.8] Attempting to compile native extensions.
[websocket v1.0.8] Native extension compilation successful!
websocket@1.0.8 node_modules\websocket

C:\Users\Administrator>

Now i'm trying to run a script with this:

   var WebSocketServer = require('websocket').Server;

and it I get this:

C:\Users\Administrator>node C:\server\src\main.js

module.js:340
throw err;
      ^
Error: Cannot find module 'websocket'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\server\src\main.js:2:23)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)

C:\Users\Administrator>

Any help would be appreciated, I already tried installing several times, I tried installing it globally (-g tag).

Note that you can get this error if you installed an NPM module globally (with the -g option) and have not told node to use the global module path to resolve requirements.

On Linux I installed the websocket module globally:

$ sudo npm install -g websocket
npm http GET https://registry.npmjs.org/websocket
npm http 200 https://registry.npmjs.org/websocket
npm http GET https://registry.npmjs.org/websocket/-/websocket-1.0.8.tgz
npm http 200 https://registry.npmjs.org/websocket/-/websocket-1.0.8.tgz

> websocket@1.0.8 install /usr/local/lib/node_modules/websocket
> node install.js

[websocket v1.0.8] Attempting to compile native extensions.
[websocket v1.0.8] Native extension compilation successful!
websocket@1.0.8 /usr/local/lib/node_modules/websocket

Following this I had to export the NODE_PATH environment variable to point to the path mentioned in the above output:

export NODE_PATH=/usr/local/lib/node_modules

After this:

$ node
> require('websocket')
{ server: 
   { [Function: WebSocketServer]
     super_: { [Function: EventEmitter] listenerCount: [Function] } },
     ...

Hopefully this helps someone searching for this error message out.

I´ve got same error here.. I follow these steps:

Execute cmd as Administrator (Right click cmd icon-> Run as Administrator) Then type in cmd:

c:\Node Instalation Dir\> npm install -g express
c:\Node Instalation Dir\> npm install websocket --force

Now u can run your script:

c:\Node Instalation Dir\> node script.js

I did in a test server.. try to dont use '--force' in production server ok?

The npm install the module in the ./node_modules/ . So you should install the websocket IN the C:\\server\\src\\ .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM