跳到主要内容

节点文件结构#

遵循节点结构中的最佳实践和标准能使您的节点更易于维护。当其他开发者需要参与代码开发时,规范的代码结构将提供极大便利。

节点的文件和目录结构取决于:

  • 节点的复杂程度
  • 是否使用节点版本控制
  • npm包中包含的节点数量

n8n推荐使用 n8n-node 工具 创建符合规范的节点文件结构。您可以根据需要自定义生成的脚手架以满足更复杂的需求。

必需文件和目录#

节点必须包含:

  • 项目根目录下的 package.json 文件(每个npm模块均需此文件)
  • 存放节点代码的 nodes 目录:
    • 该目录必须包含符合 <节点名称>.node.ts 格式的基础文件,例如 MyNode.node.ts
    • 建议包含记录节点元数据的代码索引文件,其文件名需与节点基础文件匹配。例如基础文件为 MyNode.node.ts 时,代码索引文件应命名为 MyNode.node.json
    • 该目录可包含其他文件和子目录,包括版本控制目录,以及通过多文件拆分实现模块化结构的节点代码
  • 存放凭证代码的 credentials 目录,这些代码保存在独立的凭证文件中,文件格式为 <节点名称>.credentials.ts,例如 MyNode.credentials.ts

模块化结构#

您可以选择将节点所有功能集中在一个文件中,或拆分为基础文件与导入模块。除非节点非常简单,否则推荐采用拆分方案。

基础模式是按操作进行分离,可参考 HttpBin 入门节点 的示例。

对于复杂节点,建议采用目录结构,可参阅 Airtable 节点Microsoft Outlook 节点 的范例:

  • actions:包含资源子目录的目录
    • 每个子目录应包含两类文件:
    • 带资源描述的索引文件(命名为 <资源名称>.resource.tsindex.ts
    • 操作文件 <操作名称>.operation.ts,这些文件应包含两个导出项:操作描述 description 和执行函数 execute
  • methods:存放动态参数函数的可选目录
  • transport:包含通信实现逻辑的目录

版本控制#

若节点存在多个版本且采用完整版本控制,文件结构会更为复杂。每个版本都需要独立目录,并需设置指定默认版本的基础文件。有关版本控制(包括版本类型)的详细信息,请参阅节点版本控制

确定包中包含的节点数量#

构建节点时有两种配置方案:

  • 一个npm包包含单个节点
  • 一个npm包包含多个节点

n8n支持这两种方案。若包含多个节点,每个节点应在 nodes 目录中拥有独立目录。

编程式节点最佳实践示例#

n8n内置的 Airtable 节点 采用模块化结构和版本控制,是实践推荐模式的典型范例。

此页面是否

Thumbs up有帮助

Thumbs down没有帮助

感谢你的反馈!

提交

返回顶部