云函数操作数据库 使用where查询时无法传入参数?
发布于 8 年前 作者 jieqiao 11250 次浏览 来自 官方Issues

云函数端:

// 云函数入口文件

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(){

wx.cloud.callFunction({

name:"orderQuery",

data:{

title:'123'

}

})

}

小程序端传入云函数的title参数,在云函数调用event.title时提示是undefined

如果把where里的内容写死,比如where({title:‘123’})这样是可以查询的,但是写成上面代码里那样就提示查询条件不能是undefined

请问这个问题应该怎么解决?

4 回复
// 云函数端
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)
    })
  }

我测试是OK的

谢谢各位,我刚才出现问题的地方都是在本地调试云函数的时候出现的,上传部署之后从小程序端调用是没问题的!

我看不出来你贴的代码有什么问题,你可以用排除法去排除,从小程序端到云函数,一个个打印,到数据库看权限看数据是否存在,我相信应该是可以解决的。

你又是怎么写的呢

回到顶部