小程序云开发

1、原因:尝试并记录小程序的云开发过程。

2、思路:通过云函数的调用实现订单的上传,新增

2-1小程序端封装并调用云函数

2-1-1小程序中封装的云调用方法

//app.js
ajax(url, data, config) { const name
= url.split('/')[0], type = url.split('/')[1] return new Promise((resolve, reject) => { wx.cloud.callFunction({ // 要调用的云函数名称 name: name, // 传递给云函数的event参数 data: { type: type, data }, config }).then(res => { resolve(res.result) }).catch(err => { reject(err) }) }) }

2-1-2小程序调用云函数

const app = getApp()
app.ajax('order/addOrEditOrder', this.data.form).then(res => {   ... })

2-2编写云函数实现存储数据逻辑

2-2-1区分功能

//index.js
const addOrEditOrder = require('./addOrEditOrder/index');
const getOrderList = require('./getOrderList/index');
const delOrder = require('./delOrder/index');
// 云函数入口函数
exports.main = async (event, context) => {
  // const wxContext = cloud.getWXContext()
  
  console.log(event.type)
  switch (event.type) {
    case 'addOrEditOrder':
      return await addOrEditOrder.main(event, context);
    case 'getOrderList':
      return await getOrderList.main(event, context);
    case 'delOrder':
      return await delOrder.main(event, context);
  }
}

2-2-2编写逻辑调用数据库新增

//addOrEditOrder/index.js
const cloud = require('wx-server-sdk');
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
const db = cloud.database();
exports.main = async (event, context) => {
  console.log('调用接口成功! addOrEditOrder', event,context)
  try {
    event.data.createTime=new Date()
    event.data.orderState='collect'
    db.collection('order').add({
      data: event.data
    }).then(()=>{
      return {
        success: true
      };
    })
  } catch (e) {
    return {
      success: false,
      errMsg: e
    };
  }
};
posted @ 2022-04-04 18:20  Pavetr  阅读(200)  评论(0)    收藏  举报