微信公众号开发

微信小程序值之云开发入门

本文主要是介绍微信小程序值之云开发入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、小程序云开发

程序的云开发:

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

云开发提供了几大基础能力支持:

能力作用说明
云函数无需自建服务器在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
数据库无需自建数据库一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库
存储无需自建存储和 CDN在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
云调用原生微信服务集成基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力

1.1 创建项目

打开并登录微信开发者工具,新建小程序项目,填入 AppID,后端服务选择“小程序·云开发”并勾选同意"云开发服务条款":

在这里插入图片描述
在这里插入图片描述

1.2 开通云开发

在使用云开发能力之前,需要先开通云开发。

在开发者工具的工具栏左侧,点击 “云开发” 按钮即可打开云控制台,根据提示开通云开发,并且创建一个新的云开发环境。

在这里插入图片描述

  • 每个环境相互隔离,拥有唯一的环境 ID,包含独立的数据库实例、存储空间、云函数配置等资源;
  • 初始创建的环境自动成为默认环境
  • 默认配额下可以创建两个环境

1.3 设置云环境

云开发目录
在这里插入图片描述

这里要设置的是开发时或者程序运行时使用的云环境,如果选择错误,则可能找不到前面创建的云函数

打开app.js

在这里插入图片描述

我们需要配置env和traceUser字段

env代表我们当前选择的云环境ID

traceUser 设置为true之后我们的操作就可以在日志中可见

1.4 开始开发

开通创建环境后,即可以开始在模拟器上操作小程序体验云开发提供的部分基础能力演示

我们打开云开发控制台

在这里插入图片描述

1.4.1 数据库

云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。
一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。

1.4.2 数据库操作

1.初始化(调用获取默认环境的数据库的引用)

 const db = wx.cloud.database()

2.通过数据库引用上的 collection 方法获取一个集合的引用

const todos = db.collection('集合名')

3.在集合对象上调用 add 方法往集合中插入一条记录

exports.main = async (event, context) => {
  let res = await db.collection('todos').add({
    data:{
      desc:'我是新插入的数据',
      done:true,
      due:new Date(),
      style:{
        color:'blue'
      }
    }
  })
  return res
}

4.使用 update 方法可以只更新指定的字段,其他字段不受影响。

exports.main = async (event, context) => {
  try {
    return await db.collection('集合名').where({
      name : 'alice'
    }).update({
      data: {
        age:100
      },
    })
  } 
}

5.对记录使用 remove 方法可以删除该条记录

exports.main = async (event, context) => {
  try {
    return await db.collection('集合名').where({
      name : 'alice'
    }).remove()
  }
}

1.5编写云函数

编写云函数,查询数据库并返回数据

新建云函数 music,编写如下代码

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

cloud.init({
  env: 'test-2gw33xcpbb0f6b27',
  traceUser: true,
})

const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  // console.log(event)
  let res = await db.collection('todos').where({
    desc:event.desc
  }).get()
  return res
}

注意: cloud.init 方法需要配置参数,特别需要指明 env 否则测试时可能会一直提示 “database collection not exists

1.6 云开发本地调试错误

Cannot find module ‘wx-server-sdk’

这个错误别管他怎么来的

只需要在当前云函数目录下打开终端

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

1.7 云函数路由

每个控件的云函数是有限制的,所以我们应该尽量利用每一个云函数,将业务相关的代码写道一个云函 数中

所以这里的云函数与常规后台开发中的 api 不太一样

  • 每个 api 的功能应该尽量单一
  • 每个云函数应该尽量处理多的任务,当然这些任务是相关的,比如推荐歌单、热门歌单、音乐搜索 等

路由

  • 路由的作用就是将用户的请求分配到不同控制器中的方法处理
  • 这样虽然一个控制器中编写了很多方法,但通过路由就能够被正确的请求调用
  • 云函数中也应该有相同的应对机制,将用户不同的请求分配到不同的处理中
    在这里插入图片描述

安装

注意是云函数安装

npm install --save tcb-router

云函数中引入

const TcbRouter=require('tcb-router')

修改云函数代码

// 云函数入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router')
cloud.init({
env: 'test-5gngkp7l028ba32b',
traceUser: true,
})
// 云函数入口函数
exports.main = async (event, context) => {
	const app = new TcbRouter({ event });
	app.router('playlist', async (ctx, next) => {
	let res = await cloud.database().collection('playlist')
		.skip(event.start)
		.limit(event.count)
		.orderBy('createTime', 'desc')
		.get()
	ctx.body = res
// await next(); // 执行下一中间件
})
return app.serve();
}

在页面中引用

    let res = await wx.cloud.callFunction({
      name:'music',
      data:{
        $url:'playlist',
        start:this.data.playlist.length,
        count:15
      }
    })
这篇关于微信小程序值之云开发入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!