n8n自定义节点示例

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

目录

本地环境说明

创建节点所需的环境

安装 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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
n8n是一种流程自动化工具,通过使用n8n code,可以在流程中编写和调试JavaScript代码。以下是关于n8n code调试的一些步骤和建议。 首先,要开始调试n8n code,需要创建一个包含代码的节点。选择要调试的节点类型(例如,执行JavaScript代码的节点)并设置输入和输出。然后,在代码字段中编写JavaScript代码。 要开始调试,可以使用console.log()将输出打印到输出面板。这将帮助查看代码中的变量值和结果。在代码中使用console.log()来打印需要调试的值。 在调试期间,可以使用断点来停止代码的执行。通过在代码中设置断点,可以逐步执行代码并检查每个步骤的结果。要设置断点,可以在代码的某一行上单击,并在调试过程中观察每个步骤的输出。 另一个有用的调试方法是使用try-catch语句来处理错误。通过使用try-catch语句,可以捕获代码中可能发生的错误,并在错误发生时打印相关信息。这样可以更容易地找到问题所在,并进行调试。 此外,可以使用n8n提供的函数和方法来帮助调试。例如,使用$node['workflow'].toJson()可以将工作流转换为JSON格式,并在输出面板中打印。这样可以检查工作流的结构和数据的传递。 为了更好地调试n8n code,建议使用开发者工具和调试器。使用开发者工具可以检查网络请求、查看变量值和执行步骤。调试器可以帮助逐行调试代码,并提供更深入的调试功能。 总结一下,n8n code调试是通过在代码中使用console.log()、设置断点、使用try-catch语句和使用开发者工具来进行的。这些方法将帮助您定位和解决代码中的错误,并确保流程正确执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值