# 云端操作常见问题
# 如何在云函数中访问 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
9
10
11
2
3
4
5
6
7
8
9
10
11