节点文件结构#
在节点结构中遵循最佳实践和标准使您的节点更易于维护。如果其他人需要使用代码,这会很有帮助。
节点的文件和目录结构取决于:
- 节点的复杂性。
- 是否使用节点版本控制。
- npm 包中包含多少个节点。
必需的文件和目录#
您的节点必须包括:
- 项目根目录下的
package.json
文件。这是任何 npm 模块都需要的。 - 包含节点代码的
nodes
目录: - 包含凭据代码的
credentials
目录。此代码位于单个凭据文件中。文件名格式为<node-name>.credentials.ts
。例如,MyNode.credentials.ts
。
模块化结构#
您可以选择将节点的所有功能放在一个文件中,或将其拆分为基础文件和其他模块,然后基础文件导入这些模块。除非您的节点非常简单,否则最佳实践是将其拆分。
基本模式是分离操作。有关此示例,请参阅 HttpBin 启动器节点。
对于更复杂的节点,n8n 建议使用目录结构。请参阅 Airtable 节点或 Microsoft Outlook 节点作为示例。
actions
:包含代表资源的子目录的目录。- 每个子目录应包含两种类型的文件:
- 带有资源描述的索引文件(命名为
<resourceName>.resource.ts
或index.ts
) - 操作文件
<operationName>.operation.ts
。这些文件应该有两个导出:操作的description
和execute
函数。
methods
:可选目录,包含动态参数函数。transport
:包含通信实现的目录。
版本控制#
如果您的节点有多个版本,并且您使用完整版本控制,这会使文件结构更加复杂。您需要为每个版本创建一个目录,以及设置默认版本的基础文件。有关使用版本的更多信息,包括版本控制类型,请参阅节点版本控制。
决定在包中包含多少个节点#
构建节点时有两种可能的设置:
- 一个 npm 包中有一个节点。
- 单个 npm 包中有多个节点。
n8n 支持这两种方法。如果包含多个节点,每个节点都应该在 nodes
目录中有自己的目录。
编程式节点的最佳实践示例#
n8n 的内置 Airtable 节点实现了模块化结构和版本控制,遵循推荐的模式。