uni-app不使用自带的uniCloud,怎么创建云函数去连接腾讯云

511 阅读1分钟

1,在app.vue连接要操作的云开发的环境

onLaunch() {
    // 连接要操作的云环境
    wx.cloud.init({
        // 云环境id
        env: 'cloud1-9gmx2beu4845e0e4',
        traceUser: true,
    })
},

2, 在项目根目录(微信开发者工具打开的项目)找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目录作为云开发的本地根目录

1681378592019.png

在根目录创建cloudfunctions目录为云开发的本地根目录

1681378698276.png

在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,

1681378874499.png

3,在创建的云函数,右键,选择在内建终端打开,安装依赖

npm install --save wx-server-sdk@latest

4,index.js为云函数的入口文件,写云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
// 连接云环境
cloud.init({ env: "cloud1-9gmx2beu4845e0e4"}) 
// 连接云数据库
const db = cloud.database()
// 查询指令
const dbCmd = db.command
​
// 云函数入口函数
exports.main = async (event, context) => {
  // 获取菜品分类下菜品总数大于0的
  const dishCate = await db.collection('dishes-category').where({count:dbCmd.gt(0)}).get()
  // 获取上架的菜品
  const dishData = await db.collection('dish-data').where({onsale:true}).get()
  // 对菜品数据进行格式化成以下格式
  // [
  //   {
  //     'category':'素菜类',//所属分类
  //     'cid':'a001',//分类id
  //     'good_query':[
  //       {
  //         image:[{status:'success',uid:'0000',url:'http'}],
  //         其他数据
  //       }
  //     ]
  //   }
  // ]
  let newArr = {}
  dishData.data.forEach(item =>{
    let {category,cid,...data} = item
    if(!newArr[cid]){
      newArr[cid] = {
        category,
        cid,
        good_query:[]
      }
      // console.log(data);
    }
    newArr[cid].good_query.push(data)
  })
  return {
    resCate:dishCate.data,
    resData:Object.values(newArr)
  }
}

4,右击创建的云函数文件夹,选择上传并部署,不上传node_modules

5,页面调用腾讯云函数

// 调用云函数获取数据
async getDish(){
    const res = await wx.cloud.callFunction({
        name:'dish-mange'
    })
    this.dishCate = res.result.resCate
    this.dishData = res.result.resData
    console.log(this.dishData);
},