跳至内容

节点文件结构#

在节点结构中遵循最佳实践和标准,可以使您的节点更易于维护。如果其他人需要处理代码,这将非常有帮助。

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

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

必需的文件和目录#

您的节点必须包含:

  • 项目根目录下的package.json文件。这是任何npm模块所必需的。
  • A nodes directory, containing the code for your node:
    • 该目录必须包含基础文件,格式为.node.ts。例如MyNode.node.ts
    • n8n 建议包含一个codex文件,其中包含节点的元数据。codex文件名必须与节点基础文件名匹配。例如,给定一个名为MyNode.node.ts的节点基础文件,codex名称应为MyNode.node.json
    • nodes目录可以包含其他文件和子目录,包括版本目录,以及将节点代码拆分到多个文件以创建模块化结构。
  • 一个credentials目录,包含您的凭证代码。这些代码存放在单个凭证文件中。文件名格式为.credentials.ts。例如MyNode.credentials.ts

模块化结构#

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

一个基本模式是将操作分离。参考HttpBin起始节点作为示例。

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

  • actions: a directory containing sub-directories that represent resources.
    • 每个子目录应包含两种类型的文件:
    • 包含资源描述的索引文件(命名为.resource.tsindex.ts
    • 用于操作的文件 .operation.ts。这些文件应包含两个导出项:操作的description描述和一个execute执行函数。
  • methods: 一个可选的动态参数函数目录。
  • transport: 包含通信实现的目录。

版本控制#

如果您的节点有多个版本,并且您正在使用完整版本控制,这将使文件结构更加复杂。您需要为每个版本创建一个目录,同时还需要一个设置默认版本的基础文件。有关处理版本的更多信息(包括版本控制类型),请参阅Node versioning

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

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

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

n8n支持两种方法。如果包含多个节点,每个节点应在nodes目录下拥有自己的独立目录。

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

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

优云智算