# 云端操作常见问题
# 如何在云函数中访问http服务
# 请求云函数报403错误
code=403 为权限不足,通常是因为你写的云函数没有放在`pub`或`kh`目录下导致的
pub目录:任何人都可以请求的云函数
kh目录:只有登录用户才可以请求的云函数
sys目录:登录且拥有对应权限的用户才可以请求的云函数
1
2
3
4
2
3
4
# 云函数中时区问题导致获取到的本月起始时间和截止时间不准确
// 使用以下api可以解决时区问题:
let commonTime = vk.pubfn.getCommonTime(new Date());
1
2
2
# 云函数中如何使用缓存
# 云函数中如何将网络图片上传到云储存
# 云函数中如何将网络图片转成base64
# 云函数中如何调用另一个云函数
# 方式一(推荐,vk-unicloud版本需>=2.9.0)
注意:方式一只支持符合VK框架路由规则的云函数或云对象
优势:完美契合VK框架,且拥有继承当前用户token、ip等功能。
// 云函数内调用其他云函数或云对象内的函数,在同一个router大函数下,name参数可不传
let callRes = await vk.callFunction({
name: "router",
url: 'client/user/pub/test',
event,
data: {
a:1
},
});
console.log(callRes)
// 云对象内调用其他云函数或云对象内的函数,在同一个router大函数下,name参数可不传
let callRes = await vk.callFunction({
name: "router",
url: 'client/user.test',
clientInfo: this.getClientInfo(),
data: {
a:1
},
});
console.log(callRes)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 方式二(此方式适用任何场景)
优势:可以请求不是vk框架下的云函数
let callFunctionRes = await uniCloud.callFunction({
name: "router",
data: {
$url: "client/user/pub/test",
data: {
a:1,
b:2
}
}
});
console.log(callFunctionRes.result)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 方式三 (此方式需要单独写成公共函数,如 service/user/util/login_log.js
)
优势:减少一次网络请求,性能高
// 下方代码是演示调用 service/user/util/login_log 文件内的 add函数
let loginLogService = vk.require("service/user/util/login_log");
await loginLogService.add({
type: "login",
login_type: "univerify",
user_id: res.uid,
context: originalParam.context
},util);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8