节点文件结构#
在节点结构中遵循最佳实践和标准,可以使您的节点更易于维护。如果其他人需要处理代码,这将非常有帮助。
节点文件和目录结构取决于:
- 您节点的复杂度。
- 是否使用节点版本控制。
- 你在npm包中包含多少个节点。
必需的文件和目录#
您的节点必须包含:
- 项目根目录下的
package.json文件。这是任何npm模块所必需的。 - A
nodesdirectory, containing the code for your node: - 一个
credentials目录,包含您的凭证代码。这些代码存放在单个凭证文件中。文件名格式为。例如.credentials.ts MyNode.credentials.ts。
模块化结构#
您可以选择将所有节点功能集中在一个文件中,或者将其拆分到基础文件和其他模块中,然后由基础文件导入。除非您的节点非常简单,否则最佳实践是进行拆分。
一个基本模式是将操作分离。参考HttpBin起始节点作为示例。
对于更复杂的节点,n8n推荐使用目录结构。请参考Airtable节点或Microsoft Outlook节点作为示例。
actions: a directory containing sub-directories that represent resources.- 每个子目录应包含两种类型的文件:
- 包含资源描述的索引文件(命名为
或.resource.ts index.ts) - 用于操作的文件
。这些文件应包含两个导出项:操作的.operation.ts description描述和一个execute执行函数。
methods: 一个可选的动态参数函数目录。transport: 包含通信实现的目录。
版本控制#
如果您的节点有多个版本,并且您正在使用完整版本控制,这将使文件结构更加复杂。您需要为每个版本创建一个目录,同时还需要一个设置默认版本的基础文件。有关处理版本的更多信息(包括版本控制类型),请参阅Node versioning。
决定在包中包含多少个节点#
构建节点时有两种可能的设置:
- 一个npm包中包含一个节点。
- 单个npm包中包含多个节点。
n8n支持两种方法。如果包含多个节点,每个节点应在nodes目录下拥有自己的独立目录。
编程节点的最佳实践示例#
n8n内置的Airtable节点采用模块化结构和版本控制,遵循推荐模式。