开发者学堂课程【小程序云开发速成: 小程序云开发和调试(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/300/detail/3505
小程序云开发和调试(二)
四、云函数的部署
使用 alipaydev 命令部署
1、上传云函数
#上传云函数根目最下名为 getSum 的云函数
alipaydev cloud function deploy -n getSum -p /server/functions
#上传云函数根目录 下名为 aaa bbb 的云函 数
alipaydev cloud function deploy -n aaa bbb -p /server/ functions
2.参数
参数 |
必填 |
说明 |
默认值
|
i, -app-id |
否 |
小程序appld |
无 |
-S,-space-id |
否 |
云服务空间ID |
无 |
-n, --name |
是 |
云函数名称,多个云函数则以空格分隔 |
无 |
p, project |
是 |
云函数本地文件地址 |
无
|
3、克隆项目的脚手架
代码已写好,点击命令,改成自己需要的参数就可以部署云函数了,显示出部署成功。
4、验证函数部署是否成功
点击云函数
之后点击 admin 的管理查看基本信息,看到发布时间最新,部署成功。为了验证是否部署成功,可以修改代码:注释掉 todo.js 中 res=await live.getList()
;
加入
res=[{
_id:1,
text:’假数据’
}]
然后部署测试空间,测试空间部署好后将小程序切换到测试空间。
出现假数据说明部署成功
此处使用 ts 去写或者使用一个脚手架而不是直接用原生的写是因为ts有很多优点,可以在云函数中依赖一些包比如 lodash 或者@hapi/joi 等其他的包,此时就会将所有代码打包成不同的云函数,部署时实际上就是部署打包编译后的代码。
比如新建一个云函数 demo.js,然后在 package.json 中增加该云函数 demo,随意复制 todo.ts 代码进入,然后点击测试空间 deploy:test-server 进行部署:
部署成功后可以看到测试空间多出一个云函数
五、增、删、改常见案例在云函数里如何写代码
先切入到 local 环境,然后启动 inspect-server,将上面修改过注释掉的代码取消注释,删除新增加的代码。
1、取列表数据并展示
一般会写一个类 todo,将 todo.js 中的 live 改为 todo,todo 类有如下方法:
class Todo extends Context{
async getList(){
const{mpserverless}=this
const{result}=await mpserverless
.db
.collection(‘todo’)
.find()
return result || []
}
2、想要更新记录
async update(item){
const {mpserverless}=this
const{result}=await mpserverless
.db
.collection(‘todo’)
.updateOne{
_id:item._id
},{
$set:{
completed:item.completed
}
需要找到 id,然后编写 completed 状态,然后就可以在小程序上修改它的状态
3、只写一个云函数,通过调整参数实现不同的云函数服务
async getToDoList(){
const todoList=await invokeFunction({
name:’todo’,
url:’todo/list’
})
this.setData({todos:todoList})
比如想要修改一个状态:
await invokeFunction({
name:’todo’,
url:’todo/update’,
data:{
_id:id,
completed
}
})
id 表示需要修改的数据名
如果想要新增一条记录:
await invokeFunction({
name:’todo’,
url:’todo/create’,
data:{
text:this.data.inputValue,
completed:false,
}
})
拿到用户输入的值,然后去调用 todo 里的 create,这样就完成了一个云函数的修改和查询。
todolist 中没有删除的功能,所以不做删除演示。
六、总结
以上就是整个小程序的开发和调试技巧,即目前存在一个小程序,想要给给小程序增加 Serverless 能力,就可以按照此流程:
1、下载 CLI 工具
举例演示一些命令:
比如输入 alipaydev mini list
任意选择一个小程序,可以通过 alipaydev cloud space list 看到有多少空间,选择一个空间后再运行 alipaydev cloud function list 可以查看有哪些云函数
CLI 其实有一些配置,刚下载完成需要进行一些初始化配置
2、在项目里新建一个配置文件 mini.project.json,把客户端代码全部放入一个子文件夹里
{
“cloud”:{
“type”:”mpServerless”
},
“miniprogramRoot”:”client”,
“component2”:true
}
3、云函数本地测试
alipaydev cloud function dev -i 2021001136614025 -p functions/ --inspect
4、云函数脚手架
https://github.com/douzi8/mp-serverless
可以克隆或者下载在本地尝试小程序的调试或开发。要注意该 demo 克隆下来需要修改配置,修改成自己账户中的配置,就可以使用自己的小程序进行运行