Skip to content

节点文件结构#

在节点结构中遵循最佳实践和标准使您的节点更易于维护。如果其他人需要使用代码,这会很有帮助。

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

  • 节点的复杂性。
  • 是否使用节点版本控制。
  • npm 包中包含多少个节点。

必需的文件和目录#

您的节点必须包括:

  • 项目根目录下的 package.json 文件。这是任何 npm 模块都需要的。
  • 包含节点代码的 nodes 目录:
    • 此目录必须包含基础文件,格式为 <node-name>.node.ts。例如,MyNode.node.ts
    • n8n 建议包含一个代码库文件,包含节点的元数据。代码库文件名必须与节点基础文件名匹配。例如,给定名为 MyNode.node.ts 的节点基础文件,代码库名称为 MyNode.node.json
    • nodes 目录可以包含其他文件和子目录,包括版本目录,以及跨多个文件拆分的节点代码以创建模块化结构。
  • 包含凭据代码的 credentials 目录。此代码位于单个凭据文件中。文件名格式为 <node-name>.credentials.ts。例如,MyNode.credentials.ts

模块化结构#

您可以选择将节点的所有功能放在一个文件中,或将其拆分为基础文件和其他模块,然后基础文件导入这些模块。除非您的节点非常简单,否则最佳实践是将其拆分。

基本模式是分离操作。有关此示例,请参阅 HttpBin 启动器节点

对于更复杂的节点,n8n 建议使用目录结构。请参阅 Airtable 节点Microsoft Outlook 节点作为示例。

  • actions:包含代表资源的子目录的目录。
    • 每个子目录应包含两种类型的文件:
    • 带有资源描述的索引文件(命名为 <resourceName>.resource.tsindex.ts
    • 操作文件 <operationName>.operation.ts。这些文件应该有两个导出:操作的 descriptionexecute 函数。
  • methods:可选目录,包含动态参数函数。
  • transport:包含通信实现的目录。

版本控制#

如果您的节点有多个版本,并且您使用完整版本控制,这会使文件结构更加复杂。您需要为每个版本创建一个目录,以及设置默认版本的基础文件。有关使用版本的更多信息,包括版本控制类型,请参阅节点版本控制

决定在包中包含多少个节点#

构建节点时有两种可能的设置:

  • 一个 npm 包中有一个节点。
  • 单个 npm 包中有多个节点。

n8n 支持这两种方法。如果包含多个节点,每个节点都应该在 nodes 目录中有自己的目录。

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

n8n 的内置 Airtable 节点实现了模块化结构和版本控制,遵循推荐的模式。