如何在小程序云函数传递参数查询

240 阅读1分钟

废话少说 直接上demo

demo1 从小程序本地环境数据库获取数据

// 云函数端
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection('todos').where({ title: event.title }).get()
}
// 客户端
  search: function () {
    console.log("ok\n")
    wx.cloud.callFunction({
      name: "where_test",
      data: {
        title: '123'
      }
    }).then(res=>{
      console.log(res)
    }).catch(res => {
      console.error(res)
    })
  }

demo2 从小程序共享环境数据库获取数据


// 云函数端

// 声明新的 cloud 实例
  var c1 = new cloud.Cloud({
    // 资源方 AppID
    resourceAppid: 'xxx',
    // 资源方环境 ID
    resourceEnv: 'xxx',
  })
  // 跨账号调用,必须等待 init 完成
  // init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、并可自定义安全规则
  await c1.init()
  // 完成后正常使用资源方的已授权的云资源
  return new Promise(async (resolve, reject) => {
    const db = c1.database()
    const _ = db.command
    await db.collection('union').where({
      deadline:_.gte(event.curDate),
      source:_.eq(event.query)
     }).orderBy('hot', 'desc').get()
      .then(res => {
        console.log('获取-A数据库-成功',res)
        resolve(res.data)
      })
      .catch(err => {
        console.log('获取-A数据库-失败',err)
        reject(err)
      })
 })     
     //客户端
    let query=this.data.query
    let curDate =new Date().getTime();
    wx.cloud.callFunction({
      name:'getUnion',
      data:{query,curDate}
    }).then(res=>{
      this.setData({
        newsList:res.result,
      })
    }).catch(err=>{
      console.log(err);
    })