Appearance
云函数Cloud SDK API文档
CloudSdkInterface
export interface CloudSdkInterface {
/**
* 发送 HTTP 请求,实为 Axios 实例,使用可直接参考 axios 文档
*/
fetch: AxiosStatic;
/**
* 获取 database ORM 实例
*/
database(): Db;
/**
* 调用云函数
*/
invoke: InvokeFunctionType;
/**
* 抛出云函数事件,其它云函数可设置触发器监听此类事件
*/
emit: EmitFunctionType;
/**
* 云函数全局内存单例对象,可跨多次调用、不同云函数之间共享数据
* 1. 可将一些全局配置初始化到 shared 中,如微信开发信息、短信发送配置
* 2. 可共享一些常用方法,如 checkPermission 等,以提升云函数性能
* 3. 可做热数据的缓存,建议少量使用(此对象是在 node vm 堆中分配,因为 node vm 堆内存限制)
*/
shared: Map<string, any>;
/**
* 获取 JWT Token,若缺省 `secret`,则使用当前服务器的密钥做签名
*/
getToken: GetTokenFunctionType;
/**
* 解析 JWT Token,若缺省 `secret`,则使用当前服务器的密钥做签名
*/
parseToken: ParseTokenFunctionType;
/**
* 当前应用的 MongoDb Node.js Driver 实例对象。
* 由于 Laf database ORM 对象只有部分数据操作能力,故暴露此对象给云函数,让云函数拥有完整的数据库操作能力:
* 1. 事务操作
* ```js
* const session = mongo.client.startSession()
* try {
* await session.withTransaction(async () => {
* await mongo.db.collection('xxx').updateOne({}, { session })
* await mongo.db.collection('yyy').deleteMany({}, { session })
* // ...
* })
* } finally {
* await session.endSession()
* }
* ```
* 2. 索引管理
* ```js
* mongo.db.collection('admins').createIndex('username', { unique: true })
* ```
* 3. 聚合操作
*/
mongo: MongoDriverObject;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57