Skip to content

函数管理 ​

函数是可复用的代码片段,支持 JavaScript 和 Go 两种脚本语言。函数可以在接口脚本、定时任务、其他函数中被调用。

创建函数 ​

JavaScript 函数 ​

  1. 在左侧导航栏选择「函数」分类
  2. 点击「+」按钮创建新函数
  3. 选择脚本类型为 JavaScript
  4. 定义参数和返回值
  5. 编写函数体
javascript
// 函数体示例:格式化日期
var time = require("time")

function formatNow(layout) {
    return time.Format(time.Now(), layout)
}

return formatNow(param["layout"] || "2006-01-02 15:04:05")

Go 函数 ​

  1. 在左侧导航栏选择「函数」分类
  2. 点击「+」按钮创建新函数
  3. 选择脚本类型为 Go
  4. 编写函数体
go
// Go 函数必须定义 module 入口函数
import (
    "time"
)

func module(req map[string]any) (any, error) {
    layout := "2006-01-02 15:04:05"
    if v, ok := req["layout"].(string); ok {
        layout = v
    }
    return time.Now().Format(layout), nil
}

调用函数 ​

方式一:require 加载 ​

使用 require 加载函数,函数名以 @ 前缀标识:

javascript
// 加载函数并执行
var myFunc = require("@myFunction")
var result = myFunc({ key: "value" })

方式二:callFunc 调用 ​

javascript
// 通过路径调用函数
var result = callFunc("/分组/函数名", { key: "value" })

方式三:sss.Invoke 调用 ​

javascript
var result = sss.Invoke("/分组/函数名", { key: "value" })

方式四:sss.Func 调用 ​

javascript
var result = sss.Func("/分组/函数名", { key: "value" })

内置全局函数 ​

以下函数无需引入模块,可直接在脚本中使用:

函数返回值说明
now()string返回当前时间 RFC3339 格式字符串
uuid()string生成 UUID 字符串
print(...)—输出到控制台,等同于 console.log
console.log(...)—输出日志
console.info(...)—输出 INFO 日志
console.warn(...)—输出 WARN 日志
console.error(...)—输出 ERROR 日志
console.debug(...)—输出 DEBUG 日志

参数传递 ​

函数通过 param 全局对象接收参数:

javascript
// 调用时传入参数
var result = callFunc("/tools/add", { a: 1, b: 2 })

// 函数体内获取参数
var a = param["a"]
var b = param["b"]
return a + b

在线调试 ​

  1. 打开函数编辑页面
  2. 在调试区输入参数(JSON 格式)
  3. 点击「运行」按钮
  4. 查看输出结果

注意事项 ​

  • JavaScript 函数基于 ES5 标准(Goja 引擎)
  • Go 函数需定义 module(req map[string]any) (any, error) 入口函数
  • Go 函数可使用 addons 目录下的第三方包
  • 函数支持缓存预热,提高调用性能

版权所有.