集成节点/Creating_nodes/Build_your_node/Reference
Node 文件结构#
遵循节点结构的最佳实践和标准能让您的节点更易于维护。当其他开发人员需要参与代码开发时,规范的代码结构将提供很大帮助。 节点的文件和目录结构取决于:
- 节点的复杂程度
- 是否使用节点版本控制
- npm 包中包含的节点数量
n8n 推荐使用 n8n-node 工具创建规范的节点文件结构。您可以根据需要自定义生成的脚手架结构,以满足更复杂的需求。
必需文件和目录#
节点必须包含:
- 项目根目录下的
package.json文件(每个 npm 模块都需要此文件) - 存放节点代码的
nodes目录: - 存放凭据代码的
credentials目录。该代码位于单个凭据文件中,文件名格式为<节点名称>.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 节点 采用模块化结构和版本控制机制,遵循推荐模式。