轻服务 简易上手教程
这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战
轻服务是面向未来的云服务, 提供开箱即用的开发体验。开发者无需考虑服务器和数据库等基础设施的搭建,更不用操心测试环境配置、数据备份和线上运维等一系列繁琐之事,只需专注于产品开发本身。
主页在这:轻服务 - 先于时代的云服务 (qingfuwu.cn)
新建服务
进入到 Dashboard 界面后点击创建服务后输入服务名称即可新建服务。
云函数
新建服务后会帮助我们生成一个新的云函数,我们基本不用看原函数写了什么,需要如何做数据处理按照你自己写 JavaScript 的节奏写就可以。
比如我在这里新建一个计算加法的云函数,代码如下
module.exports = async function(params, context) {
const addend1 = Number(params.addend1);
const addend2 = Number(params.addend2);
return {
sum: addend1 + addend2
}
}
在调用轻服务的云函数时,我们推荐使用 POST 方法。这里为了方便演示使用 GET 方法,测试数据如下:
{
"addend1": 200,
"addend2": 33
}
注意点:
- 返回的是一个对象
{key: value, key: value, ...} - 数据从
params处使用.操作符获取 -
GET请求的参数均为string或Array<string>类型,即?a=1时params.a === '1'。
测试完毕后点击上线会给一个调用地址:qcnp4x.fn.thelarkcloud.com/hello
此方法使用了 GET,所以我们直接在调用地址后边拼接 ?addend1=200&addend2=33 即可实现调用
qcnp4x.fn.thelarkcloud.com/hello?adden…
数据库
轻服务提供了一套简单易用的数据库功能,在云函数中,只需通过 inspirecloud.db 即可进行操作。例如:
- 从数据库中获取一张表(如果没有就新建)
let myTable = inspirecloud.db.table('myTable')
插入数据
- 向一张表中插入一条数据
const result = await myTable.save({key: value, key: value})
如果表中没有查找到 key 的同名字段则自动添加一个字段到表中
- 向表中插入多条数据
const result = await myTable.save([
{
key: value,
key: value
},
{
key: value,
key: value
}
])
- 插入相关联的数据
const chest = chestTable.create({name: '箱子', items: []})
const apple = itemTable.create({name: '苹果'})
chest.items.push(apple._id)
const chestResult = await chestTable.save(chest)
const appleResult = await itemTable.save(apple);
*._id 表中的唯一性字段不重复
查询数据
- 查询全部数据
const itemList = await itemTable.where().find()
- 等于条件查询
const itemList = await itemTable.where({name: '苹果'}).find()
- 大于小于条件查询
// 引入 inspirecloud.db 便于使用操作符
const db = inspirecloud.db;
db.gt() // 大于
db.lt() // 小于
db.gte() // 大于等于
db.lte() // 小于等于
db.gt().lte() // 大于且小于等于
const itemList = await itemTable.where({count: db.gt(64)}).find()
- 字段查询
假设数据包含字段
_id,a,b,c,举例如下:
projection({a: 1, b: 1})返回结果包含_id,a,b
projection({a: 0, b: 0})返回结果包含_id,c
projection({a: 1, b: 1, _id: 0})强行隐藏_id,返回结果包含a,b
const goodsItemList = await GoodsTable.where().projection({item: 1}).find();