Appearance
函数管理
函数是可复用的代码片段,支持 JavaScript 和 Go 两种脚本语言。函数可以在接口脚本、定时任务、其他函数中被调用。
创建函数
JavaScript 函数
- 在左侧导航栏选择「函数」分类
- 点击「+」按钮创建新函数
- 选择脚本类型为 JavaScript
- 定义参数和返回值
- 编写函数体
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 函数
- 在左侧导航栏选择「函数」分类
- 点击「+」按钮创建新函数
- 选择脚本类型为 Go
- 编写函数体
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在线调试
- 打开函数编辑页面
- 在调试区输入参数(JSON 格式)
- 点击「运行」按钮
- 查看输出结果
注意事项
- JavaScript 函数基于 ES5 标准(Goja 引擎)
- Go 函数需定义
module(req map[string]any) (any, error)入口函数 - Go 函数可使用
addons目录下的第三方包 - 函数支持缓存预热,提高调用性能