华为云ASTRO轻应用-通过华为云Astro轻应用连接器对接第三方数据库:步骤四:通过脚本调用连接器获取数据
时间:2025-03-03 11:34:46
步骤四:通过脚本调用连接器获取数据
- 在应用设计器中,选择“逻辑”,单击脚本后的“+”。
- 新建一个空白的脚本,名称设置为“dbscript”,单击“添加”。
图20 创建脚本dbscript
- 在脚本编辑器中,输入示例代码。
示例代码中,“命名空间__demoDB”为4中定义的连接器名称,“命名空间__noauth”为3中添加的认证信息,“命名空间__demoSql”为6中添加的动作。
import * as connector from 'connector'; import * as context from 'context';//导入上下文相关的标准库 //定义入参结构 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'String', required: false, label: 'String' }) sql: string; } //定义出参结构 @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'any' }) res: any; } @action.object({ type: "method" }) export class CreateWorkOrder { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public createWorkOrder(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { // 页面上自己创建的自定义连接器的调用方法,第一个参数是创建的自定义连接器名称,第二个参数是认证信息名称 let client = connector.newClient("命名空间__demoDB", "命名空间__noauth"); //入参 let input = { "sql": "select * from flowinstance limit 1" }; // 第一个入参是动作名称, 第二个参数是入参 let resp = client.invoke("命名空间__demoSql", input); // 打印输出结果 console.log(resp); out.res = resp; } catch (error) { console.error(error.name, error.message); context.setError(error.name, error.message); } return out; } }
- 单击页面上方的
,保存脚本。
- 单击编辑器上方的
,执行脚本。
- 在页面底部单击测试窗口右上角的
,在“输出参数”中可以查看到返回的数据库数据。
图21 查看返回数据
support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0020.html