Code-内置组件

# 应用介绍

Code节点,是开放给具备代码基础同学的高级应用,通过代码编译的方式,以满足差异化、定制化的个性业务需求。

# 应用场景介绍

目前Code节点支持运行JavaScript语言,其他编码语言将在后续开放。

# 应用支持的触发条件和执行操作

# 触发条件

无

# 执行操作

1、运行JavaScript: 编写JS代码处理较复杂的业务逻辑

# 配置账号和参数

# 前置条件

1、具有一定的JavaScript代码基础;

# 添加账户

使用该应用时不需要认证授权,因此不需要添加账号。

# 执行操作配置说明

1、运行JavaScript

① 设置变量:编写代码前,可以先「设置变量」,目的是:设置可被代码块使用的变量;

将前序节点的变量关联引入到代码块中(点击输入框右侧的“+”)。

说明:此处设置的变量会被预置到一个名为 inputData 的对象中,例如 inputData.user 就可以访问到变量 user 。

​ img

② 设置代码:根据业务逻辑需要,可以在此处编写代码。

引用变量:可使用 inputData.变量名,读取在「设置变量」时设置的变量;

输出结果:output 中的运行结果,可以作为变量在后续节点引用。

​ img

③ 测试代码:代码编写完成后,请点击「测试代码」,验证代码可读性。

测试通过:会输出运行结果。

​ img

测试失败:会提示红色错误信息。

​ img

代码示例

① 拉取数据:随机获取一句古诗文

配置如下:

​ img

代码如下:

const request = require('request');
const prom = new Promise(resolve => {
request.get('http://poetry.apiopen.top/sentences', (a, b, body) => {
  resolve(body);
  });
});

output = {
  sentences: JSON.parse(await prom)
};

② 处理数据:将时间戳转换为时间格式

配置如下:

​ img

代码如下:

const moment = require('moment');

output = {
  time: moment(+inputData.timestamp).add(8, 'hours').format('yyyy-MM-DD HH:mm:ss')
};

节点限制

① 资源限制说明

为了避免对资源过多占用,运行代码有以下限制:

代码运行时间不超过 3 秒;

代码运行占用内存不超过 64MB。

② 规范限制说明

目前 Code 节点运行 JavaScript 采用 Node.js 12.16 ,运行时已支持的库如下表:

库名称 版本
base64-js 1.3.1
buffer 5.5.0
cos-nodejs-sdk-v5 2.5.20
crypto-browserify 3.12.0
ieee754 1.1.13
imagemagick 0.1.3
isarray 2.0.5
jmespath 0.15.0
lodash 4.17.15
microtime 3.0.0
moment 2.29.1
npm 6.13.4
punycode 2.1.1
puppeteer 2.1.1
qcloudapi-sdk 0.2.1
querystring 0.2.0
request 2.88.2
sax 1.2.4
scf-nodejs-serverlessdb-sdk 1.1.0
tencentcloud-sdk-nodejs 3.0.147
url 0.11.0
uuid 7.0.3
xml2js 0.4.23
xmlbuilder 15.1.0

# 应用相关案例和模板

1、Webhook-Code-企业微信群机器人: 用于实时接收系统数据,数据组装后及时发送提醒

当源系统产生新的数据时,通过Code节点对数据进行组装,再通过企业微信群机器人在企微群内进行通知。