微信小程序系列之云开发

三大核心

  • 云数据库
    • 提供在小程序端直接对数据库进行增删改查的能力
    • 数据库是类似于MongoDB的文档存储的数据库,操作非常方便
  • 云存储
    • 可以在小程序端直接上传、下载、删除文件
    • 自带CDN,提高文件访问速度
    • 可以获取临时链接,支持在小程序外访问
  • 云函数
    • 提供了在服务器代码的执行能力
    • 包含微信天然的私有鉴权
    • 更大权限的操作数据库等
    • 进行云调用、HTTP请求等操作

数据库操作简单封装

export const db = wx.cloud.database();

class NBCollection {
    
    
  constructor(collectionName) {
    
    
    this.collection = db.collection(collectionName);
  }

  // 增删改查
  add(data) {
    
    
    return this.collection.add({
    
    
      data,
    });
  }

  remove(condition, isDoc = true) {
    
    
    if (isDoc) {
    
    
      return this.collection.doc(condition).remove();
    } else {
    
    
      this.collection.where(condition).remove();
    }
  }

  update(condition, data, isDoc = true) {
    
    
    if (isDoc) {
    
    
      return this.collection.doc(condition).update({
    
     data });
    } else {
    
    
      return this.collection.where(condition).update({
    
     data });
    }
  }

  query(offset = 0, size = 20, condition = {
     
     }, isDoc = false) {
    
    
    if (isDoc) {
    
    
      return this.collection.doc(condition).get();
    } else {
    
    
      return this.collection.where(condition).skip(offset).limit(size).get();
    }
  }
}

// 导出
export const favorCollection = new NBCollection("nb_favor");
export const likeCollection = new NBCollection("nb_like");

云函数示例子

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
    
    
  // 1.获取数据库和集合
  const db = cloud.database()
  const type = event.type

  const collection = db.collection("lol")

  // 2.从集合中查询数据
  const res = await collection.get()
  return {
    
    
    name: "英雄联盟",
    liveRooms: res.data
  }
}
// 云函数入口文件
const cloud = require("wx-server-sdk");

cloud.init();

// 云函数入口函数
exports.main = async (event, context) => {
    
    
  // 1.生成小程序码
  const qrCodeRes = await cloud.openapi.wxacode.createQRCode({
    
    
    width: 320,
    path: "pages/cloud-database/index",
  });

  // 2.获取到数据, 并且上传到云存储中
  const wxContext = cloud.getWXContext();
  const timestamp = new Date().getTime();
  const openid = wxContext.OPENID;
  const extension = qrCodeRes.contentType.split("/").pop();
  const cloudPath = `${
      
      timestamp}_${
      
      openid}.${
      
      extension}`;

  const uploadRes = await cloud.uploadFile({
    
    
    fileContent: qrCodeRes.buffer,
    cloudPath,
  });

  return uploadRes;
};
// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require("axios")

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
    
    
  // 1.从自己的服务器请求数据
  const res = await axios.get("http://123.207.32.32:8000/home/multidata")

  // 2.对数据进行转换, 返回给客户端
  return {
    
    
    recommends: res.data.data.recommend.list,
    banners: res.data.data.banner.list
  }
}

猜你喜欢

转载自blog.csdn.net/weixin_40639095/article/details/134662234