n8n自定义节点示例

news/2025/1/16 5:57:15/

看完整篇文章,理清思路再动手,注意环境的区别

目录

本地环境说明

创建节点所需的环境

安装 Git

Nodejs

下载n8n

节点创建

创建节点文件

UI界面显示这个节点

踩坑合集

node的版本问题

ubuntu 镜像源的问题

安装过程中我遇到的帖子


这里说一下哈,我不是搞前端的,所以前端的包引入之类的操作如果报错,我也不知道怎么解决,一般都是找issue或者官网wiki之类的地方找答案。

自定义这种东西必须得依靠官网给的文档来才可以操作成功。

本地环境说明

我自己的系统是windows10的子系统 Ubuntu 20.04 LTS。关于子系统的安装可以看这里windows10安装docker桌面版巧遇WSL2更新安装 中的【场景问题集合】。下面是我子系统的版本。

创建节点所需的环境

官网说,创建节点就必须要有git、nodejs,而且nodejs的版本还必须是14.x ,而 npm 必须是 6.x,还有一个包管理工具 lerna

安装 Git

不多赘述,参照文档

Nodejs

#使用Ubuntu 
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash  - 
sudo apt-get install -y nodejs

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

上述的url中的14 是指我需要安装node的版本,换成其他的版本也可以生效

执行完上面两天命令后就可以通过node -vnpm -v命令查看我们的版本了

下载n8n

文档的意思是,让我们fork一下n8n这个项目,然后通过自己fork的仓库进行下载就好

大致操作如下:

进入n8n的github页面,点击右上角fork就可以了(我这里已经fork了),点击之后会进入一个让你通过地址克隆的页面,不用理会,但是要复制那个地址

地址大概率就是下面这个样子

git@github.com:SinMu-L/n8n.git
# 也有可能长这样,这两个都是指向的同一个地址
https://github.com/SinMu-L/n8n.git

我们这里主要是要把它下载下来,所以在命令行里面输入命令git clone git@github.com:<这里是你配置的用户名>/n8n.git  即可

节点创建

下载好了之后 cd 进入 n8n目录后安装文档进行操作就好

创建节点文件

上图大致的意思如下

  1. 先进入 n8n目录/packages/nodes-base/nodes ,我这里的目录长这样

  2. 创建一个文件夹:FriendGrid
  1. FriendGrid里面需要创建两个文件:FriendGrid.node.ts friendGrid.svg
  2. 将下面的内容复制到 FriendGrid.node.ts 里面
import {IExecuteFunctions,
} from 'n8n-core';import {IDataObject,INodeExecutionData,INodeType,INodeTypeDescription,
} from 'n8n-workflow';import {OptionsWithUri,
} from 'request';export class FriendGrid implements INodeType {description: INodeTypeDescription = {displayName: 'FriendGrid',name: 'friendGrid',icon: 'file:friendGrid.svg',group: ['transform'],version: 1,description: 'Consume FriendGrid API',defaults: {name: 'FriendGrid',color: '#1A82e2',},inputs: ['main'],outputs: ['main'],credentials: [],properties: [// Node properties which the user gets displayed and// can change on the node.],};async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {return [[]];}
}

friendGrid.svg这个文件是一张图片,需要同志们下载一个svg图片到当前路径下

这里我的路径是 ~/n8n/packages/nodes-base/nodes/FriendGrid

处理好了之后,~/n8n/packages/nodes-base/nodes/FriendGrid 下就有这些东西

UI界面显示这个节点

需要进入路径 ~/n8n/packages/nodes-base,编辑 package.json文件

大概在314行的样子插入一条数据

"dist/nodes/FriendGrid/FriendGrid.node.js",

接下来就是需要进入n8n的根目录,这里很重要,只有进入了根目录,才会将ts处理为js文件。

接下来就可以开始建立依赖和模块之间的关联以及构建文件了

# 接下来就是建立关联(将依赖和模块建立联系)
sudo lerna bootstrap --hoist
# 构建文件
sudo npm run build
# 开发模式运行项目,这里会开启8080端口,如果8080端口被占用的话,会开启8081.
# 开发模式下本机访问ubuntu子系统可能存在跨域问题
sudo npm run dev

如果都没有报错的话,那么你距离成功就查最后一步了

重新进入 n8n 的根目录 ,执行命令

sudo npm run build && sudo npm run start

访问 http://localhost:5678就可以看到我们的n8n的UI界面

踩坑合集

node的版本问题

一定要和官网的版本一致,否则会出现稀奇古怪的问题(至少对于我而言是的)

这里安装nodejs之后就会自带 npm 所以不用太担心 npm 没有安装。

如果 sudo node -v 有版本信息提示,但是 sudo npm -v 没有提示的话,那么重新安装一遍nodejs就可以了,这个网上蛮多教程,请自行搜索

ubuntu 镜像源的问题

直接更新镜像源就好了,可以自行搜索,也可以看我这篇文章

安装过程中我遇到的帖子

Building a custom node - #10 by jan - Questions - n8n

n8n/CONTRIBUTING.md at master · n8n-io/n8n · GitHub

Building a custom node - #11 by ilsemaj - Questions - n8n


http://www.ppmy.cn/news/312434.html

相关文章

NodeJS MongoDB⑦

文章目录 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持&#x1f618;前言Node&MongoDB 第一步 连接数据库 第二步 创建User Mongodb模型 第三步 简单使用 Mongodb命令 第四步 规范使用 Mongodb命令 &#xff08…

5G NR option 3

5G NR option 3 网络架构承载类型终端注册流程 网络架构 为了从4G向5G平滑演进&#xff0c;3gpp提出了双链接的概念:EN-DC/MR-DC(EUTRAN NR Dual Connectivity/MultiRAT Dual Connectivity). 初期主流的配置方式都是采用option 3&#xff0c;如下图&#xff1a; 虚线代表控制…

cgb2111-day09

文章目录 一,CSS--1,练习学生管理系统改造HTML文件创建css文件,提取css代码 --2,练习用户注册创建HTML网页文件创建css文件 二,JavaScript--1,概述--2,特点--3,入门案例 三,JS语法--1,数据类型 & 变量--2,运算符 四,JS语句--1,分支结构--2,循环结构 一,CSS –1,练习学生管…

小爱音箱提示“系统出现点问题,请检查配置。。。“采坑之旅

起因&#xff1a;用着好好的突然就不好使了&#xff0c;语音问小爱音箱提示“系统遇到点问题&#xff0c;请检查配置或者稍后重试” 这个问题实质是小爱音箱连接WiFi失败 到目前为止&#xff0c;试了好几个方法&#xff0c;记录一下。 1、首先长按话筒键10s&#xff0c;恢复…

5GgNB和ng-eNB的主要功能

1、无线资源管理相关功能&#xff1a;无线承载控制&#xff0c;无线接入控制&#xff0c;连接移动性控制&#xff0c;上行链路和下行链路中UE的动态资源分配&#xff08;调度&#xff09;  2、数据的IP头压缩&#xff0c;加密和完整性保护  3、在用户提供的信息不能确定到AFM…

5G NR—— Identities

UE的ID 小区级别的UEID - C-RNTI - Temporary C-RNTI - Random-RNTI NG-RAN级别的ID - I-RNTI 网元的ID - AMF ID&#xff1a;用于标识一个AMF实体 - NR Cell Global Identifier (NCGI)&#xff1a;用于全局范围内标识一个小区&#xff0c;其由PLMN ID NCI构成&#…

[深入研究4G/5G/6G专题-29]: 5G NR开机流程5.1 - NR网络架构、基站的核心网相关配置

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址: 目录 前言: 前置条件 第1章 5G RAN+核心网架构 1.1 LTE网络架构

强化学习笔记:DQN和DDQN

本文整理于datawhalechina.github.io的强化学习教程 0x01 intro 在 Q-learning 中&#xff0c;我们学习的是一个“评论函数” Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)&#xff0c;通过其函数值判断当前状态 s s s下采取动作 a a a好不好。 这个评论函数的输出值取决于agent的策…