云服务器内容精选

  • 创建空白脚本 参考登录经典应用设计器中操作,登录经典版应用设计器。 将光标放在某个文件夹(例如Logic)上,单击,选择“脚本”。 图1 选择创建图标“+” 选择“创建一个新脚本”,设置脚本名称(如httpTest),单击“添加”,进入脚本编辑器。 图2 新增脚本 在脚本编辑器中,将以下脚本代码粘贴到代码编辑区。 import * as http from 'http' // 导入http库let client = http.newClient() // 实例化let resp = client.get("https://www.example.com/")// 请求网址console.log(resp.headers) // 打印返回headers 单击页面上方的,保存脚本。 运行测试脚本。 单击编辑器上方的,执行脚本。 在页面底部单击测试窗口右上角的,返回消息头信息。 { Age: [ '10309' ], Cache-Control: [ 'no-store' ], Content-Type: [ 'text/html; charset=utf-8' ], Date: [ 'Thu, 01 Dec 2022 03:41:39 GMT' ], Expires: [ 'Wed, 30 Nov 2022 22:01:57 GMT' ], Pragma: [ 'no-cache' ], Processtime: [ '0.049' ], Server: [ 'PAAS-WEB' ], Set-Cookie: [ 'HMF_CI=596020aa4dbe4b6***42343ba04a; Expires=Sat, 31-Dec-22 03:41:39 GMT; Path=/' ], Strict-Transport-Security: [ 'max-age=31536000' ], Ws-S2h-Acc-Level: [ '1' ], X-Content-Type-Options: [ 'nosniff' ], X-Download-Options: [ 'noopen' ], X-Frame-Options: [ 'SAMEORIGIN' ], X-Powered-By: [ 'ASP.NET' ], X-Via: [ '1.1 PSjsczsxga60:2 (Cdn Cache Server V2.0), 1.1 uzhoudianxin101:13 (Cdn Cache Server V2.0), 1.1 wdx18:10 (Cdn Cache Server V2.0)' ], X-Ws-Request-Id: [ '63882273_wdx18_41265-37840' ], X-Xss-Protection: [ '1; mode=block' ] } 以上步骤已完成了一个简单脚本的编写,如果后续其他脚本、服务编排、编译打包等需要继续使用该脚本,则必须单击页面上方的,启用该脚本。如果未启用,其他组件无法查询到该脚本,查询时会报错该脚本不存在或未启用。 后续在新版本功能中如果需要更新该脚本,可单击编辑器上方的,选择“新建版本”,在新建的版本中更改脚本并保存、测试及启用。单击编辑器上方的,选择对比版本,可将当前版本与历史版本进行比对。
  • 标准库模块 低代码平台中有些模块会被编译成二进制,预先加载到内存中。例如,decimal、context都是系统预置的标准库模块。 在低代码平台中,会优先加载标准库模块, 例如: import * as http from 'http'; 始终返回内置的HTTP模块,即使有同名自定义模块。如果需要返回自定义的模块,请使用相对路径语法: import * as http from './http';
  • 循环依赖 当循环调用模块时,一个模块可能在未完成执行时被返回。因此,需要仔细地规划模块间调用,以允许循环模块依赖在应用程序内正常工作。 例如,脚本a: console.log('a 开始');exports.done = false;import * as b from 'b';console.log('在 a 中,b.done = ', b.done);exports.done = true;console.log('a 结束'); 脚本b: console.log('b 开始');exports.done = false;import * as a from 'a';console.log('在 b 中,a.done = ', a.done);exports.done = true;console.log('b 结束'); 脚本main: console.log('main 开始');import * as a from 'a';import * as b from 'b';console.log('在 main 中,a.done = ', a.done ',b.done = ', b.done); 当main加载a时,a又加载b。 此时,b又会尝试去加载a。 为了防止无限的循环,会返回一个a的exports对象的未完成的副本给b模块。然后b完成加载,并将exports对象提供给a模块。当main加载这两个模块时,它们都已完成加载,因此该程序的输出会是: main 开始a 开始b 开始在 b 中,a.done = falseb 结束在 a 中,b.done = truea 结束在 main 中,a.done=true,b.done=true
  • 扩展名 因为脚本实际上是存在数据库中的,所以脚本没有路径的概念,扩展名也没有特别的意义。 导入模块时,尽量采用不带扩展的方式。 import * as circle from './circle'; 平台只允许“.ts”扩展名文件存在,不允许包含“.js”后缀的模块,请尽量不要使用待扩展名的导入方式。如下方式等同上面的举例,但不推荐。 import * as circle from './circle.ts';