Hello uniCloud!

第一个云函数,客户端访问此接口时返回一个“Hello uniCloud!”。

云函数hello.js代码如下:

'use strict';

//main方法
exports.main = async (event, context) => {
	console.log(event); //传入的参数
	console.log(context); //上下文信息
	//返回数据给客户端
	return {
		msg:"Hello uniCloud!"
	}
};

将编辑好的云函数上传部署。

在uniapp客户端代码如下:

// 通过内置uniCloud.callFunction方法调用云函数,promise方式
uniCloud.callFunction({
	name: 'hello', //云函数名
	data: {} //参数
}).then((res) => {
	console.log(res); // {"msg":"Hello uniCloud!"}
}).catch((err) => {
	console.error(err);
});

以上就完成了一个接口的开发部署并调用的全流程。
是不是很方便,不用购买服务器,不用启动服务,我们只需要关心具体功能业务即可。

uniCloud 简介

uniCloud是由DCloud联合阿里云、腾讯云退出的,基于serverless的、跨全端的、用js开发服服务端的云产品。
具有免运维、低服务器成本、入门上手快、开发效率高的特点,非常适合个人或小型团队的项目开发。

uniCloud还能完成更多的功能,请看下文继续了解。

以下内容为对自官方文档的学习记录(精简提要),官方文档-点击跳转

一、web 控制台

uniCloud web控制台可以让你采用可视化的方式来管理云函数、云数据库、云存储、前端网页托管等。
在这里插入图片描述

二、了解 云函数

云函数是运行在云端的JavaScript代码。

需要先了解Node.js相关知识,再进行云函数的开发。

1. 内置 API

uniCloud扩展了以下API,可以直接在云函数开发中使用。

API描述
uniCloud.callFunction()调用云函数
uniCloud.database()数据库对象
uniCloud.uploadFile()上传文件到云存储
uniCloud.downloadFile()下载云存储的文件到运行环境
uniCloud.deleteFile()删除云存储的文件
uniCloud.getTempFileURL()获取云存储文件的临时路径
uniCloud.httpclient通过http访问第三方接口
uniCloud.logger中打印日志到uniCloud日志系统
uniCloud.sendSms()发送短信

2. 日志输出

  • 本地调试云函数时,可正常使用console.log()进行日志打印。
  • 在云端时可使用uniCloud.logger.log进行日志打印到uniCloud的web控制台。

info()、warn()、error()的打印输出也同理。

3. 定时触发

云函数支持定时/定期自动执行。可用来做自动任务、提醒生成等功能。

4. 客户端调用

  • 在uniapp的环境下可使用uniCloud.callFunction()直接调用。
  • 也可将云函数URL化,才有普通http方法进行调用。

5. 注意事项

  • 云函数第一次调用时是冷启动,耗时相对较长(可单独优化)。
  • 云函数中涉及本地文件存储的操作需通过云存储方案实现(因为云服务环境为弹性调配的)。
  • 云函数中的时区是UTC+0,非UTC+8(北京时间)。

三、了解 云数据库

在云端使用json格式的文档型非关系型数据库,使用MongoDB语法。

如果你未使用过这里数据库可以先去了解一下和原来的关系型数据库的概念。

单条记录的数据格式如下:

{"name":"张三","tel":"13900000000"}

传统数据库中的表在非关系型数据库中叫做集合

1. 操作数据的2种方式

  • 直接在云函数中使用传统的MongoDB的API操作云数据库
  • 客户端直接使用clientDB操作云数据库,无需单独的云函数。

2. 怎么建集合

可以登录uniCloud web控制台,进入服务空间进行集合的创建。
创建完成后可以生成db_init.json文件,方便下次数据的初始化。

每个集合包含以下三个部分:

  1. data:数据
  2. index:索引(提高查询效率)
  3. schema:格式定义(主要用来搭配clientDB使用)

3. 数据导入导出

  • 集合结构可以是db_init.json的方式导出或初始化。
  • 数据导入导出,仅阿里云支持。
  • 数据库备份或恢复,仅腾讯云支持。

4. 注意事项

  • 可以使用其他数据库,但不推荐这样做;因为云函数和云数据库的环境是再一起的,延迟更低。
  • 集合默认自带_id字段,不可删除;修改操作时也不允许修改_id字段的值。

5. 扩展资源

  • openDB是一套开放的数据表设计规范,包括了表名、字段等schema定义以及初始数据。

四、了解 云存储

云端文件存储和提供cdn服务(免费)。
如,将你的示例Demo安装包传上去,获取到下载链接转为二维码,就可以直接在社区进行分享了。

1. 上传文件的3种方式

  1. 通过web控制台,拖拽文件上传。
  2. 通过客户端API上传。
  3. 通过云函数上传。

2. 数据处理(仅阿里云支持)

  • 图片处理(缩放、剪裁、旋转、水印等)
  • 适配截帧(截取适配首帧)

3. 数据权限(仅腾讯云支持)

可控制文件的读写相关权限。

4. 注意事项

  • 阿里云单文件大小限制为100M,腾讯云单文件最大为5G。

五、前端网页托管

后端可以使用云函数+云数据库+云存储解决了,前端的页面相关资源也可以直接上传到网页托管模块中;真正实现无需自购服务器即可完成苹果/安卓客户端/小程序端和门户网站。

使用上比较简单直接将前端文件上传就可以了,另可绑定自己的域名,使用域名进行访问。

注意事项

  • 仅支持html、CSS、JavaScript、字体、图片、音视频、json等文件。

  • 免费阿里云前端网页部署限制为最大存储空间用量2GB。

  • 免费阿里云单文件最大限制为50MB。

  • 付费腾讯云可根据需求进行购买。

这一套组合拳打下来,可以一个人完成一套小项目的全部工作了;赶快上手试试吧。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐