收藏
回答

小程序端传参数到云函数进行db.RegExp正则查询,提示传入数据非字符串?

云函数getRegexp

// 云函数入口文件
const cloud = require('wx-server-sdk')
//初始化云函数,设置云开发环境ID
cloud.init({
  env: "online-vr092" //写为固定云环境
  // env: cloud.DYNAMIC_CURRENT_ENV //动态写法  API调用都保持和云函数当前所在环境一致
})
const db = cloud.database() //获取数据库的引用
const _ = db.command //获取command方法 
// 云函数入口函数
exports.main = async (event, context) => {
  //返回数据库请求的数据
  return await db.collection("ALHUR_II")
    .where(_.or([{
        englishDesc: db.RegExp({ //对EnglishDscription构建正则查询 
          regexp: event, //查询关键词
          options: 'i'//大小写不敏感
        })
      },
      {
        chineseDesc: db.RegExp({
          regexp: event,
          options: 'i',
        })
      },
      {
        partNo: db.RegExp({
          regexp: event,
          options: 'i',
        })
      }
    ]))
    .field({
      partNo: true,
      englishDesc: true
    })
    .get({
      //异步请求数据
      sucess(res) {
        return res;
        console.log(value);
        console.log(event);
      },
      fail(err) {
        return err
      }
    })
}


小程序端js试图传入js到云函数正则查询

wx.cloud.callFunction({
  name'getRegexp',
  data:{ value }            
}).then((res)=>{
console.log(res.result);
}); 



提示错误

如果将云函数中event换做固定的字符串,比如"传感器"等,就可以直接查询出结果。

 {
        chineseDesc: db.RegExp({
          regexp: event,
          options: 'i',
        })
      }

怀疑是传参数到云函数中时出现了问题,求各位大佬解答!

回答关注问题邀请回答
收藏

2 个回答

  • 李东bbsky
    李东bbsky
    2020-05-09

    遇到这种情况,你可以先打印一下event是啥,一步步调试

    ps.你所遇到的问题说明你基本功还不太扎实,不能直接告诉你答案

    2020-05-09
    有用
    回复 1
    • 特
      2020-05-09
      没有编程基础,一点一点照着网上视频做的,这个问题已经解决啦 还是要谢谢你!
      2020-05-09
      回复
  • 特
    2020-05-09

    云函数调用event错误,改成下面这样就正常了

    {
            chineseDesc: db.RegExp({
              regexp: event.value,
              options: 'i',
            })
    
    2020-05-09
    有用
    回复
登录 后发表内容
问题标签