文档节点
本页目录

JavaScript 脚本

在隔离环境中用 JavaScript 模块处理输入,并明确声明输出。

JavaScript 脚本节点(接口类型为 code)适合数据转换、计算,以及组合受支持的能力调用。如果只需要发起一个 HTTP 请求,不涉及数据转换,HTTP 请求节点通常配置更少。

模块与端口

代码是一个 ES 模块,默认导出函数接收 (inputs, context),返回业务输出或解析为业务输出的 Promise。

export default ({ name, prefix }) => ({
  message: `${prefix}, ${name}!`
});

通过 config.outputs 声明自定义输出 schema。具名输入可直接绑定,也可以在 config.inputs 中添加约束。模块 ID 和运行时组装由公开接口负责。

{
  "op": "node.add", "as": "greet", "type": "code", "name": "Compose greeting",
  "code": "export default ({name, prefix}) => ({message: `${prefix}, ${name}!`});",
  "config": { "outputs": { "message": { "schema": { "type": "string" }, "nullable": false } } },
  "inputs": {
    "name": { "kind": "value", "value": "Ada" },
    "prefix": { "kind": "value", "value": "Hello" }
  }
}
开始节点提供姓名,固定值节点提供前缀,代码节点组合两者,工作流输出节点声明最终结果。

开始节点提供姓名,固定值节点提供前缀,代码节点组合两者,工作流输出节点声明最终结果。
输入
{"name":"Ada"}
预期结果
{"message":"Hello, Ada!"}
运行前准备
导入或执行此案例需要 Open Flow 服务;预览本身可离线使用。
下载工作流

运行时限制

受支持的 Node 内置模块只是兼容子集。每次任务都会获得从 /tmp 开始的全新内存文件系统,既不能访问宿主机磁盘,也不会延续到下次调用。不支持任意安装的包、动态导入和 CommonJS require。

调用应用操作、工作流或 HTTP 主机时,需要明确声明代码能力。context.fetch 受已声明主机和部署端当前引擎契约限制,不会继承平台凭据,也不提供任意网络访问。

持久化结果与失败

业务输出应返回 JSON。运行所属的二进制内容使用受支持的 Artifact 接口,跨运行业务值则明确写入工作流状态。虚拟文件和本地全局变量都不能作为持久化存储。

代码节点支持任务重试和错误处理。重试会重新执行整个模块,可能重复外部操作。资源限制、取消和结果不确定等情况仍按运行时契约处理。

资料来源

搜索