Node-RED自定义节点中如何正确引入npm依赖(Axios)?
Node-RED自定义节点引入npm包的正确方式
核心解决步骤:
先在节点项目目录安装依赖包
进入你的自定义节点所在的文件夹(需包含package.json文件),执行命令:npm install axios --save这是关键前提——Node-RED加载自定义节点时,只会从节点目录的
node_modules中查找依赖,未安装的话必然报错。在模块最顶部引入依赖
将require语句放在module.exports代码块之外,这样整个节点模块都能复用该依赖,避免重复加载:
const axios = require('axios'); module.exports = function(RED) { function NewNode(config) { RED.nodes.createNode(this, config); var node = this; node.on('input', async function (msg) { try { // 示例:用Axios发起GET请求 const res = await axios.get('https://your-api-url.com'); msg.payload = res.data; node.send(msg); } catch (err) { // 错误处理,将信息输出到Node-RED控制台 node.error('HTTP请求失败:' + err.message); } }); } RED.nodes.registerType("custom-node", NewNode); }
之前报错的原因:
- 未在节点目录安装Axios:Node-RED不会自动安装依赖,必须手动在节点项目中执行安装命令,将依赖写入
package.json。 - 即便在input函数内
require语法合法,但每次触发输入都加载模块效率极低,且本质未解决依赖缺失的问题。
内容的提问来源于stack exchange,提问作者ff8mania
相关产品推荐
相关产品推荐

