Node.js var mqtt=require(';mqtt';);导致错误

Node.js var mqtt=require(';mqtt';);导致错误,node.js,mqtt,Node.js,Mqtt,我已经安装了“node.js”,然后从“node.js”命令行执行“npm install mqtt”来安装“mqtt.js”。现在要测试我正在尝试执行的“mqtt客户端”: var mqtt=require('mqtt') 这会导致错误的说法: "Error: Cannot find module 'mqtt' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (mod

我已经安装了“node.js”,然后从“node.js”命令行执行“npm install mqtt”来安装“mqtt.js”。现在要测试我正在尝试执行的“mqtt客户端”: var mqtt=require('mqtt') 这会导致错误的说法:

  "Error: Cannot find module 'mqtt'
   at Function.Module._resolveFilename (module.js:338:15)
   at Function.Module._load (module.js:280:25)
   at Module.require (module.js:364:17)
   at require (module.js:380:17)
   at repl:1:12
   at REPLServer.self.eval (repl.js:110:21)
   at repl.js:249:20
   at REPLServer.self.eval (repl.js:122:7)
   at Interface.<anonymous> (repl.js:239:12)
   at Interface.EventEmitter.emit (events.js:95:17)"
“错误:找不到模块'mqtt'
在Function.Module.\u解析文件名(Module.js:338:15)
在Function.Module.\u加载(Module.js:280:25)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
回复:1:12
在REPLServer.self.eval(repl.js:110:21)
回复js:249:20
在REPLServer.self.eval(repl.js:122:7)
在接口处。(repl.js:239:12)
位于Interface.EventEmitter.emit(events.js:95:17)”

有关需要Node.js模块的信息,请参阅本教程,该教程非常详细。

顺便说一下,
createClient()
已被mqtt模块弃用,请改用
connect()


如果您想要使用现成的在线代理测试MQTT客户机,请尝试。

首先,您需要添加MQTT库。 如果服务器上安装了npm package manager,则应运行
npm install mqtt--save


有关详细信息:

这是节点开发人员面临的常见问题。在Unix系统上工作时,有时它可能不允许您安装此类软件包。为此,您需要
sudo
权限。有时,软件包已安装,但仅安装在本地模块中,当您尝试从目录外部导入时,会发生错误。有时,您的编译器读取您的依赖项,但无法在其中找到此包,此时您也会面临此错误。 不管怎样,别担心。您只需按照以下步骤操作即可

  • 最佳实践是在开始开发之前使用
    npminit
    初始化项目。这将初始化项目并生成
    package.json
    文件
  • 然后,如果您想将任何库作为依赖项,请使用
    npm install
    命令尝试
    --save
    。这将把依赖项保存在
    package.json
    文件中。 e、 g.
    npm安装mqtt——保存

  • 如果安装后未找到任何软件包,请通过
    -g
    标志全局安装。 可以在系统中访问全局安装的软件包。e、 g.
    npm安装mqtt-g

  • 注意:Unix系统需要
    SUDO
    权限才能全局安装它


    我希望这会对您有所帮助。

    当您使用node.js的命令行时,它会搜索全局安装的节点模块,通常位于Linux机器中的/usr/lib/node_modules目录中。 运行npm安装时,节点模块将本地安装在启动节点终端的同一目录中。 如果希望访问节点终端中的节点模块,则需要运行npm install mqtt-g,其中-g表示全局安装。
    通常Linux机器不允许普通用户访问/usr/lib/node_模块,因此最好将其作为
    sudo npm install mqtt-g

    运行。在
    node_modules
    文件夹中是否有
    mqtt
    文件夹,该文件夹与执行的
    *.js
    文件位于同一路径上?在我的节点\模块文件夹。它只有一个文件夹npm。@Amberlamps:这是目录结构-C:\Program Files\nodejs\node\U modules\npm。在这里面,我有一个名为node_modules的文件夹。我已经使用npm安装命令安装/下载了express和mqtt。它已将文件夹放置在目录C:\Users\I055406\node\u modules中。您是否看到任何不匹配的地方。请容忍我,因为我是这个话题的新手。我应该将mqtt和mqtt项目放在node_modules文件夹中吗?该文件夹中有npm?请尝试将您的express和mqtt项目放在C:/Users/I055406/您的_项目/我面临的问题已得到解决。。。。现在var mqtt=require('mqtt');执行时没有问题。然而,我注意到我不能通过说var client=new mqtt.MQTTClient(1883,'127.0.0.1','ClientID')来创建客户机;它的结果是,在REPLServer.self.eval(repl.js:110:21)的repl:1:14处,REPLServer.self.eval(repl.js:122:7)的repl.js:249:20处,TypeError:undefined不是一个函数,但var client=mqtt.createClient()执行时没有问题。请您提供帮助。sudo:npm:command未找到,出现此错误