笔者作为前端的新人,近期接触到字节跳动旗下的轻服务,感到很有趣且方便,故尝试了一点小玩意并写下此文将自己一些尝试分享给大家,希望能起到抛砖引玉的作用。
在阅读本文时如遇不解可先查看官方文档 数据库入门 | 轻服务文档 (qingfuwu.cn)
在制作自己的网站时,有时候为一些空白地方不知道放什么而头疼,本人作为资深杰迷,想到不如在这种地方放上杰伦歌词,可这种功能放进整个项目却有些格格不入,这时候轻服务的云函数便能派上用场了。
首先在数据库中设置好基本信息,表格名为lyrics
编写云函数如下
module.exports = async function(params, context) {
//获取表格
const lyricTable = inspirecloud.db.table('lyrics');
if (params.lyrictype && params.lyrictype == 'blue') {
// 计算表中'style'为'blue'的项的数量
const blueItemCounts = await lyricTable.where({style: 'blue'}).count();
// 挑出表中所有'style'为'blue'的项
const blueItem = await lyricTable.where({style: 'blue'}).find();
// json转数组
const bStr = JSON.stringify(blueItem);
var jsarr=JSON.parse( bStr );
} else {
// 计算表中项的数量
const len = await lyricTable.where({}).count()
// 挑出表中所有项
const lyricItem = await lyricTable.where({}).find();
// json转数组
const jsonStr = JSON.stringify(lyricItem);
var jsarr=JSON.parse( jsonStr );
}
return {
result: jsarr
};
}
将它上线,这样大家就可以通过接口使用它了,它在HTTP 场景下会作为 Response Body返回。因为考虑到你的网站可能是只想要一些忧伤的歌词,所以做了一个分支,你可以在请求的时候加上一个lyrictype:blue,示例如下图
这样一来你就获得了一句周杰伦的一句伤感的歌词
考虑到我的其它轻服务可能会到用到这个功能,于是我将其发布为中间件
将它发布为中间件并没要求对云函数做任何修改,只是为其设置了一个“命名空间”和“接口名称”,让它可以被其他人调用,相当于他人也在使用我这个云函数
其他用户在安装中间件后可通过上图的方式调用,获得数据,然后根据需要提取出自己需要的数据,6行是可以不传入params和context的,不过这样就只会返回完整的数据而不是只返回"style"为"blue"的数据了