【问题标题】:node.js script -- websocket errornode.js 脚本——websocket 错误
【发布时间】:2022-01-07 09:09:08
【问题描述】:

我已经在我的 windows-7 PC 上安装了 node.js。我无法创建到远程服务器的 websocket 连接。

我试图在我的脚本中加载模块“ws”:--

var WebSocket = require('ws')

它给出了一个错误:--

cannot find module 'ws'

所以我按照这里的说明进行操作:--
node.js websocket module installed but won't work in scripts

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

Then run my script :--
D:\My Script Folder \> node myscript.js

同样的错误。可能是什么问题呢 ?

cannot find module 'ws'

【问题讨论】:

  • 在脚本文件夹中运行 npm install 命令。另外,我认为应该是“npm install ws”。
  • 此外,当命令行路径与该目录不同时,您还需要将节点安装目录添加到全局环境变量“PATH”,以便按原样使用命令。除非您这样做,否则当您在目录 ex 之外运行命令时,您需要指定 npm 可执行文件的完整工作路径。 c:\myscript> c:\nodeinstall\npm.exe install ws

标签: javascript node.js


【解决方案1】:

如果你安装websocket,你应该需要websocket,而不是ws:

npm install websocket

然后在 REPL 中:

var websocket = require('websocket');

或者,您可以使用ws 模块:

npm install ws

复制/脚本:

var ws = require('ws');

查看您的 node_modules 目录(仅第一级,即其正下方的目录)。您可以按确切名称要求它们中的每一个。

require 实际上会在当前目录中查找 node_modules,然后如果没有找到,然后是父级,然后是父级等。如果没有找到,它将查找安装在由 NODE_PATH 指向的全局路径中的模块. (当然还有像 httpnet 这样的原生模块。)

【讨论】:

    【解决方案2】:

    尝试在本地而不是全局安装包,即不使用 -g 选项。

    您是否使用 -g 选项安装了模块?我认为并不是每个模块都打算全局安装,而是尝试为您正在创建的项目(npm install)在本地安装它,并检查错误是否仍然存在。 [...]

    如果你只想 require('something');最好在本地安装它,否则,您必须要求('{PREFIX}something'),其中前缀是您全局安装它的路径。看看这个blog post,正如它所说,一般来说,如果你要在你的应用程序中使用它们,那么经验法则是在本地安装它们,如果你要从命令行使用它们,则在全局范围内安装。

    node error cannot find module already installed.

    【讨论】:

    • 此链接有效 stackoverflow.com/questions/19874582/… ...我更改了获取模块 'ws' 的路径 .... var WebSocket = require('C:\\Program Files\\nodejs\\node_modules\ \ws');
    • @Katoch 仅仅因为它有效并不意味着它是最佳实践。
    • 那么有什么解决办法...?
    • 也执行了 --- npm install ws
    • 感谢您的及时回答
    【解决方案3】:

    我也遇到了同样的问题。

    错误 1:

    只需简单地将npm install ws 尝试到我让 server.js 为我工作的同一文件夹级别。

    错误 2:

    • 如果您收到错误WebSocket is not defined,请在添加以下代码后尝试命令npm install ws。如果ws 不起作用,请尝试npm install websocket

    另外,在你的文件中添加这个:

    const WebSocket = require('ws');
    
    var conn = new WebSocket('ws://localhost:9090');
    

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 2023-04-04
      • 2022-11-04
      • 2014-06-14
      • 2014-11-11
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多