# 云端操作常见问题

点击查看更多问题解答 (opens new window)

# 如何在云函数中访问 http 服务

传送门 (opens new window)

# 请求云函数报 403 错误

code=403 为权限不足,通常是因为你写的云函数没有放在`pub``kh`目录下导致的
pub目录:任何人都可以请求的云函数
kh目录:只有登录用户才可以请求的云函数
sys目录:登录且拥有对应权限的用户才可以请求的云函数
1
2
3
4

# 云函数中时区问题导致获取到的本月起始时间和截止时间不准确

// 使用以下api可以解决时区问题:
let commonTime = vk.pubfn.getCommonTime(new Date());
1
2

# 云函数中如何使用缓存

传送门 (opens new window)

# 云函数中如何将网络图片上传到云储存

传送门 (opens new window)

# 云函数中如何将网络图片转成 base64

传送门 (opens new window)

# 云函数中如何调用另一个云函数

# 方式一(推荐,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

# 方式二(此方式适用任何场景)

优势:可以请求不是 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

# 方式三 (此方式需要单独写成公共函数,如 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

点击查看更多问题解答 (opens new window)