微信小程序云开发【数据库连接与查询】

笔记-2020-07-27 方法1

1.前端页面绑定一个事件 getData

<button type="primary" bindtap="getData">点击获取数据</button>

2.在js文件中写getData函数,测试是否绑定成功

getData(){
          
   
 	console.log(1111);
 }

3.在js文件定义一个变量db 连接总体的数据库

const db=wx.cloud.database()

4.在getData方法中调用db,连接我们名字为“demolist”的数据库,并且用get方法获取数据,在get中写一个对象,对象中写一个回调函数,打印当前对象,控制台查看数据是否有打印

getData(){
          
   
 // 获取相应名字的数据库  用get获取该数据库的数据 回调函数
 db.collection("demolist").get({
          
   
   success:res=>{
          
   
    console.log(res)
   }
 })
},

5.对象里有回调函数,.doc用来传递数据库的独有id参数,写在数据库名字和get方法的中间

6.在data数据段中定义一个空的变量 dataObj

dataObj:""

7.在 getData方法中调用this.setData方法给dataObj赋值

getData(){
          
   
   // 获取相应名字的数据库  用get获取该数据库的数据 回调函数
   db.collection("demolist").get({
          
   
     success:res=>{
          
   
      this.setData({
          
   
        dataObj:res.data
      })
     }
   })
 },

8.如果demolist中有多条数据,则得到的dataObj为数组,在前端可以用用for循环调用,dataObj每一项为对象类型

<view wx:for="{
          
   {dataObj}}">{
          
   {
          
   item.author}}-{
          
   {
          
   item.title}}</view>

方法2(then(),常用方法)

1.可以在get方法后面写一个.then()函数,

db.collection("demolist").get().then(res=>{
          
   })
db.collection("demolist").get().then(res=>{
          
   
    console.log(res);
    this.setData({
          
   
      dataObj:res.data
    })
})

在then()里面写 res箭头函数 then就是一个回调,可以理解为success的相同用法,将请求到的东西返回给res

拓展:(then可以写很多个,以链式存在,then返回正确的结果,而catch返回错误的结果通常用来console.log(err),打印错误)

db.collection("demolist").get()
  .then(res=>{
          
   
    console.log(res);
  })

.where写在get前面(也就是和doc相同的位置) .where方法里面要写一个对象

// 查询
db.collection("demolist").where({
          
   
  author:"陈奕海"
}).get()
.then(res=>{
          
   
  console.log(res);
})
经验分享 程序员 微信小程序 职场和发展