Skip to content

节点文件结构

在节点结构中遵循最佳实践和标准,可以更轻松地维护节点。如果其他人需要使用代码,这将非常有帮助。

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

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

所需文件和目录

您的节点必须包括:

  • 项目根目录下的文件。任何 npm 模块都需要它。
  • 一个包含节点代码的目录:
    • 此目录必须包含
    • ,格式为
    • 。例如,
    • 。n8n
    • 建议包含一个
    • ,其中包含节点的元数据。codex 文件名必须与节点基本文件名匹配。例如,给定一个名为 的节点基本文件
    • ,其 codex 名称为
    • 目录可以包含其他文件和子目录,包括版本目录,以及拆分到多个文件中的节点代码,以创建模块化结构。
  • 包含您的凭证代码的目录。此代码位于单个凭证文件中。文件名格式为。例如, 。

模块化结构

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

一个基本模式是分离操作。请参阅HttpBin 启动节点以获取相关示例。

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

  • :包含代表资源的子目录的目录。
    • 每个子目录应包含两种类型的文件:
    • 一个包含资源描述的索引文件(名为 或
    • 以及
    • 用于操作的文件
    • 。这些文件应包含两个导出文件:
    • 操作文件和
    • 函数文件。
  • :可选目录动态参数的功能。
  • :包含通信实现的目录。

版本控制

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

确定包中包含多少个节点

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

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

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

程序化节点的最佳实践示例

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