一文带你入门轻服务

2,376 阅读4分钟

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

什么是轻服务

轻服务是字节跳动出品的一款面向未来的云服务平台,为开发者提供了数据库、页面托管和资源存储等云服务,让开发者无需搭建服务器即可快速开发网页、小程序等...

开始上手

进入轻服务官网首页,注册并通过实名认证后,在首页开始创建第一个服务

创建第一个服务

  1. 点击创建服务
  2. 在弹出框内输入服务名称project

image.png

稍等片刻后我们就进入到了我们创建的服务的控制面板了

image.png

云函数

云函数是组成轻服务应用的基本单元,也是开发者编写主要业务和功能的地方。

快速创建一个云函数

  1. 点击侧边栏-云函数
  2. 点击创建函数

image.png 3. 在弹出框内输入云函数名myFunction,点击确定

image.png

调试云函数

轻服务提供了在线调试函数的功能,方便开发者在开发时快速查看函数运行结果。

输入调试的参数Params后点击启动调试即可调试函数,运行完成后可以在控制台看到运行结果

image.png

上线云函数

云函数编写完成后,需要点击上线才可以在真实环境中使用

image.png

等待云函数上线完成后,点击上方的复制调用地址即可将调用地址复制到剪切板

image.png

调用云函数

axios.post('https://qcvrso.fn.thelarkcloud.com/myFunction', params)

安装依赖库

在左下角NPM依赖中点击+号,在弹出框中输入需要安装的npm包,选择对应的版本号后点击安装即可快速安装 image.png

卸载依赖库

将鼠标移至右下角对应包右侧的删除按钮,就可以快速卸载已经安装的包

image.png

数据库

快速创建第一张表

点击侧边栏的数据管理,进入页面后点击创建 image.png 在弹出框中输入表名books,点击确定

image.png

  • 表名需要由「数字」、「字母」、「下划线」组成且不能以「下划线」开头。
  • 每个服务表数上限为 100 个。

插入数据

  1. 使用 inspirecloud.db.table 获取数据表
const table = inspirecloud.db.table('books');
  1. 使用 save 方法新增一条记录
const result = await tableable.save({name: '小王子', author: 'Antoine de Saint-Exupéry'});

return result;

点击启动调试后可以在控制台看到运行结果

image.png 重新进入数据库可以看到books表中新增了一条记录: image.png

查询数据

  1. 根据某个字段查询数据 查询满足条件的一条数据fineOne
const table = inspirecloud.db.table('books');
const result = await table.where({name: '小王子'}).findOne()

return result

查询所有满足条件的数据find

const table = inspirecloud.db.table('books');
const result = await table.where({name: '小王子'}).find()

return result

点击启动调试可以看到控制台输出

image.png

如果需要以_id查询数据,需要使用where({ _id: ObjectId('xxxxx')})

  1. 根据字段值大于(小于)某个值查询数据

查询条件为price字段值大于100db.gt()

const book = await BooksTable.where({ price: db.gt(100) }).find();

price字段值小于100db.lt()

const book = await BooksTable.where({ price: db.lt(100) }).find();

price字段值大于或等于100db.gte()

const book = await BooksTable.where({ price: db.gte(100) }).find();

price字段值小于或等于100db.lte()

const book = await BooksTable.where({ price: db.lte(100) }).find();
  1. 按字段所处区间查询数据 price字段值区间为[100,200]
const book = await BooksTable.where({ price: db.gte(100).lte(200) }).find();
  1. 多个条件查询数据

查询书名为小王子且价格区间在[100,200]之间的书

const book = await BooksTable.where({ name: '小王子', price: db.gte(100).lte(200) }).find();

更改数据

先查询到对应数据,使用save方法更新到数据库

// 修改图书名
module.exports = async function(params, context) {
  // 使用 inspirecloud.db.table 获取数据表
  const BookTable = inspirecloud.db.table('books');
  // 使用 where 指定查询条件为 _id 字段值等于id
  let book = await BookTable.where({_id: ObjectId(params.id)}).findOne();
  // 若未查找到记录,则初始化一条记录
  if(!book){
    book = BookTable.create({name: params.name, author: params.author});
  }else {
    book.name = params.name
  }
  await BookTable.save(book);
  
  return {
    result: book,
  };
}

删除数据

查询对应数据,使用delete方法从数据库中删除数据

module.exports = async function(params, context) {
  // 使用 inspirecloud.db.table 获取数据表
  const BookTable = inspirecloud.db.table('books');
  // 使用 where 指定查询条件为库存数小于或等于 100
  const book = await BookTable.where({ name: '小王子' }).find();
  // 使用 delete 删除这些记录
  const result = await BookTable.delete(book);
  
  return {
    result,
  };
}

上面介绍了几种简单的操作数据的方法,更多具体的常用方法可以查看轻服务官方文档

页面托管

轻服务提供了页面部署的功能,开发者只需几步即可快速部署页面,并提供一个可以访问的HTTPS域名

在你的Vue或React项目中运行npm run build打包项目,并将生成的dist文件夹压缩成.zip文件后上传即可快速部署到轻服务中

image.png