上有很多信息,例如微信小程序的注册和微信小程序开发工具的下载。我省略了它小程序云开发初始化,直接从云开发初始化开始。
一、初始化
添加“ ..json”文件的第二行
"cloudfunctionRoot":"cloud",//云函数的目录
在“资源管理器”中创建一个具有相同名称的新目录
在“ app.js”文件中,删除以下内容:(){}并将其更改为以下内容:
onLaunch: function () { wx.cloud.init({ env:"tiaxxxxxxxxxxx1-edyoy" //这里为云环境ID,可以在“云开发控制台”--“设置”里找到 }) }
在这里,由于微信小程序的调试基础库的默认2. 0. x,此处将报告以下错误:
VM701:1 thirdScriptError Cannot read property 'init' of undefined;at App lifeCycleMethod onLaunch function TypeError: Cannot read property 'init' of undefined
解决方案是用更高版本替换调试库。请注意,某些较低版本的不支持基库的较高版本。具体的操作方法如下图所示
二、云数据库1、云数据库初始化
在“ .js”文件下输入以下内容:
//数据库初始化,"list"是数据库中的表名 const DB = wx.cloud.database().collection("test")
然后,您需要在云开发控制台中创建一个与上述数据库同名的新数据库
2、将数据添加到数据库
将以下内容添加到“ .wxml”文件中:
//在页面添加一个按钮,点击之后向数据库添加数据 <button bindtap="addData">添加数据</button>
在“ .js”文件的页面({})中,输入以下内容:
Page({ //添加数据 addData(){ DB.add({ //要添加的数据 data:{ name : "Jim", age : "22", }, //添加成功时的操作 success(res){ //打印“添加成功” console.log("添加成功",res) }, //添加失败时的操作 fail(res){ console.log("添加失败",res) }, }) } })
单击“编译”,单击速度控制器中的“添加数据”按钮,可以看到输出了“成功添加”,然后在云开发控制台中单击“刷新”,可以看到数据已成功添加。
获取用户输入的信息并将其添加到云数据库中
在“ .wxml”文件中创建2个输入框
<input placeholder="请输入名字" bindinput="addName"></input> <input placeholder="请输入年龄" bindinput="addAge"></input>
在“ .js”文件中,在页面({})之外添加两个全局变量“ name”和“ age”;在页面({})中添加两个方法“”和“”
let name = "" let age = "" Page({ addName(event){ name = event.detail.value }, addAge(event){ age = event.detail.value }, //添加数据 addData(){ DB.add({ //要添加的数据 data:{ name : name, age : age, }, //添加成功时的操作 success(res){ //打印“添加成功” console.log("添加成功",res) }, fail(res){ console.log("添加失败",res) }, }) }, })
编译并运行,在输入框中输入“名称”和“年龄”,然后在后台查看数据添加的结果
3、查询数据
将以下内容添加到“ .wxml”文件中:
//在页面添加一个按钮,点击之后向数据库添加数据 <button bindtap="getData">查询数据</button>
在“ .js”文件的页面({})中,输入以下内容:
getData(){ DB.get({ success(res){ console.log("查询成功",res) }, fail(res){ console.log("查询失败",res) }, }) },
单击“编译”,然后在调速器中单击“查询数据”按钮,可以看到输出了“查询成功”一词
4、删除数据
在“ .wxml”中添加一个以输入要删除的数据的ID
<input placeholder="请输入数据ID" bindinput="delDataID"></input>
在“ .js”中添加全局变量,并在page({})中添加以下代码:
let dataid = "" Page({ delDataID(event){ dataid = event.detail.value }, delData(){ DB.doc(dataid).remove({ success(res){ console.log("删除成功",res) }, fail(res){ console.log("删除失败",res) }, }) }, })
编译并运行。使用以前的查询数据或从后台复制一组数据的ID,在输入框中输入ID,单击“删除数据”按钮,转到后台检查是否删除了数据
删除之前数据库中有3条数据
执行删除后,数据库中只有2个数据,并且找不到删除的数据ID
5、更改数据
在“ .wxml”中添加3和1
<input placeholder="请输入数据ID" bindinput="updateID"></input> <input placeholder="请输入名字" bindinput="updateName"></input> <input placeholder="请输入年龄" bindinput="updateAge"></input> <button bindtap="updateData">修改数据</button>
在“ .js”的页面({})中添加以下内容:
Page({ updateID(event){ dataid = event.detail.value }, updateName(event){ name = event.detail.value }, updateAge(event){ age = event.detail.value }, updateData(){ DB.doc(dataid).update({ data : { name : name, age : age, }, success(res){ console.log("修改成功",res) }, fail(res){ console.log("修改失败",res) }, }) } })
编译运行,输入要修改的数据的ID,名称和使用期限,单击“修改数据”按钮,进入后台检查数据修改是否成功
三、创建云功能
右键单击新创建的“”文件夹,然后选择“ New Node.js ”
1、云函数示例(1)-计算两个数字之和
我们创建了一个名为“加号”的云函数,等待该云函数上传成功提示出现在右上角,您可以在后台看到新创建的云函数。
在“ /plus/.js”文件中,
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() //这2行代码是初始化,不要改动 // 云函数入口函数 exports.main = async (event, context) => { //{}里面的内容可以换成自己的代码 let a = parseInt(event.aaa); //数据是从event中获取。对输入的数据取整 let b = parseInt(event.bbb); return a + b }
每次修改“ /plus/.js”文件时,都需要右键单击“ plus”文件夹,然后选择“上传和部署:云安装依赖项(不是上传)”
在“ .wxml”中添加以下代码:
<input placeholder="请输入第一个数" bindtap="firstNumber"></input> <input placeholder="请输入第二个数" bindtap="secendNumber"></input> <button>求和</button>
在“ //.js”中添加以下内容:
let AAA = "" let BBB = "" Page({ firstNumber(event){ AAA = event.detail.value }, secendNumber(event){ BBB = event.detail.value }, add(){ wx.cloud.callFunction({ name : "plus", //需要调用云函数的名字 data : { aaa : AAA, //把输入的第一个数赋值给aaa。这里的键名必须与云函数的参数名相同 bbb : BBB, }, success(res){ console.log("计算成功",res) }, fail(res){ console.log("计算失败",res) }, }) } })
编译并运行,输入2个数字,然后单击“求和”按钮以验证结果是否正确
2、云功能示例(2)-获取用户的
实际上,在创建新的云功能时,系统会自动生成该段代码来吸引用户,代码如下
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
3、云功能示例(3)-查询云数据库中的数据
您也可以直接使用云函数API来操作云数据库,但是有很多限制,例如只能查询20条数据,并且数据表的权限受到限制。使用云功能查询云数据库不受上述限制,可以实现更多功能。
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { return cloud.database().collection("test").get(); }