小程序云开发小记

小程序云开发小记

现在云开发是越来越火了,刚好最近在做一个小程序云开发的项目,就记录一下心得和遇到的问题! ??

小程序云开发与普通的开发有什么区别?

最大的区别就是把数据库搬到了云上,而且可以让前端直接操作数据库,让前端开发者某种意义上成为了全栈工程师! ??
云开发新增了两个关键的知识点:云函数云数据库操作

云函数

云函数, 顾名思义:就是放到云服务器上的函数,然后小程序可以通过wx.cloud.callFunction的方法调用,非小程序端,也可以通过http请求调用云函数。
云函数的开发流程一般如下: 小程序本地编写函数 -> 本地调试 -> 点击上传函数。具体细节官方介绍得很清楚,可以看这里;

云函数 tip

一般来说,一个文件夹对应一个云函数; 当然你也可以一个文件夹写多个函数,每个函数export一个函数名,然后在index.js中通过不同的请求参数名来调用不同的函数。

//  一个文件夹对应多个函数的情况
//  test.js
module.exports = async (event, context)=> {
    console.log('this is test.js');
}

//  index.js
const test = require('./test.js');
const controller = {test};

const cloud = require("wx-server-sdk");
cloud.init({
    env: cloud.DYNAMIC_CURRENT_ENV
});
exports.main = async (event, context) => {
  const { action } = event;
  try {
    return (await controller[action](event, context))
  } catch (err) {
    console.log(err);
    return err;
  }
};

//  小程序端调用
wx.cloud.callFunction({
    name:'xxx', // 这里写云函数的文件夹名称
    data:{
        action:'test',
        paramt:'xxx', // 其他自定义参数
    }
})

云函数所在的文件夹是可以安装npm,一般来说云函数都会依赖wx-server-sdk这个库,所以本地要安装依赖。
如果依赖没有安装,那么本地调试是用不了的。但是我们上传云函数的时候,是可以不上传这些依赖的!

云函数 定时

云函数是可以定时的,需要在云函数的根目录添加一个定时触发器的配置,新建一个config.json, 格式内容如下:

{
  // triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
  "triggers": [
    {
      // name: 触发器的名字,规则见下方说明
      "name": "myTrigger",
      // type: 触发器类型,目前仅支持 timer (即 定时触发器)
      "type": "timer",
      // config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明
      "config": "0 0 2 1 * * *"
    }
  ]
}

注意: 云函数触发器要在小程序端点击右键选择上传触发器,如果只是选择上传云函数,是没有效果的; 另外要注意的是config的cron格式;格式如果不对,定时的时间可能不会达到预期的效果。具体看这里

善于利用console和日志查看云函数bug

虽然云函数可以本地调试,但不能保证到了云环境中不会报错。这个时候就可以在云开发控制台中的日志查看,可以在关键的地方用console打印调试的信息。

什么地方使用云函数

使用云函数的好处是不用审核就能直接更新,不像小程序更新还要等待审核。以下的几种情况都可以用云函数:

  1. 对数据库的写入操作,应该用云函数来解决;
  2. 数据库的读取,可以用云函数,也可以在小程序本地,看情况;
  3. 复杂的逻辑关系操作,应该放在云函数中,比如:登录;购物车;下单等操作;
  4. 第三方的接口对接,也可以写在云函数中;

云数据库

关于数据库,腾讯有自己的一套sdk使用,有很多的语句和方法可以用,对于数据库不熟练的前端来说,确实有些压力,需要花多点时间学习,也可以请教认识的后台同事。这里我直接贴上地址,你们慢慢学习传送门

值得注意的地方

云数据库在小程序和云函数上的操作方式都是一样的,但有个地方需要注意的:在初始化数据库的时候,最好指定云环境的id,一般来说我们都是会建立两个不同的云环境的,一个测试,一个正式,但在切换的时候,如果数据库没有指定相应的环境,是会默认读取第一个环境的!!!
还有一个坑,有的人认为在初始化云的时候指定环境 就可以了,其实不完全正确,具体来说,这样只会切换对应的云函数和数据库的读操作,如果涉及数据库的写操作,还是要再指定一下对应的云环境。。。 ??

//  小程序的指定云环境
// 1. 在app.onLaunch 的时候初始化
wx.init.cloud({
    env: process.env.NODE_ENV === "development"? "测试环境id":"正式环境id"
});

const db = wx.cloud.database({
    env: process.env.NODE_ENV === "development"? "测试环境id":"正式环境id"
});

//  云函数中指定云环境
const cloud = require('wx-server-sdk');
cloud.init({
    env:cloud.DYNAMIC_CURRENT_ENV
});

const db = cloud.database({
    env: cloud.DYNAMIC_CURRENT_ENV
});

原文地址:https://www.cnblogs.com/blogs-xlf/p/12001909.html

时间: 2024-10-10 17:18:36

小程序云开发小记的相关文章

【微信小程序云开发】从陌生到熟悉

前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前端就能搞定,真的是零成本. 云开发三大基础能力 云函数:运行在微信服务器上的函数,处理微信相关操作有天然优势,如获得用户信息异常方便(以前服务端解析很麻烦) 数据库:一个小程序可以直接操作的JSON数据库,可以直接操作数据库,不在需要服务端了. 存储:用来存储文件和图片 阅读本文之前最好对微信小程序

微信小程序云开发更换云开发环境

小程序云开发环境初始化默认是第一个环境,但是我们可以指定环境id //app.js App({ onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ env: "kindear-fd77cd", traceUser: true, }) } this.globalData = {} } }) 就可以成功更换云开发环境. 原文地址:

小程序云开发向数据库中新增数据

小程序云开发向数据库中新增数据,基本操作在新建完一个云项目后都有了,右键上传部署login云函数后,就可以在模拟器中简单地操作数据库了 这是databaseGuide.js生成时就给出的代码,增删改查都需要先将相关部分的代码去掉注释. // pages/databaseGuide/databaseGuide.js const app = getApp() Page({ data: { step: 1, counterId: '', openid: '', count: null, queryRe

微信小程序云开发入门到发布上线

初始化项目 起步说明[非小白教程] 适合人群[建议快速看文档,对着写一遍] 看过官方文档,并简单的写过 起步教程 云开发文档 熟悉vue/es6 小程序注册[微信公众平台] 获取appid[微信公众平台-开发-开发设置] 新建小程序云开发项目 新建项目选择一个空目录,填入 AppID(使用云开发能力必须填写 AppID) 勾选创建 "小程序云开发 " 点击新建即可得到一个展示云开发基础能力的示例小程序. 该小程序与普通 QuickStart 小程序有以下不同需注意: 无游客模式.也不可

微信小程序云开发

使用微信小程序云开发,可以不需要后端的参与,前端直接使用数据库. 第一步,新建一个空的云开发项目 在project.config.json 文件可以看见 "miniprogramRoot": "miniprogram/",   表示为小程序页面的文件 "cloudfunctionRoot": "cloudfunctions/", 表示云函数文件,即 在云端定义一些函数,运行环境为 nodejs, 可以做一些运算操作,然后将结果

用小程序·云开发两天搭建mini论坛丨实战

笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序,深度体验了小程序云开发模式提供的云函数.数据库.存储三大能力.关于云开发,可参考文档:小程序·云开发. 个人感觉云开发带来的最大好处是鉴权流程的简化和对后端的弱化,所以像笔者这种从未接触过小程序开发的人也能够在周末两天时间内开发出一个功能完备.体验闭环的勉强能用的产品. 最后,本文并不是搬运官方文档,也不会详细介绍开发工具和云开发后台的使用,所以建议结合上面给出文档链接一起消化本文. 功能分析 该小程序功能目前较为简单

微信小程序云开发-从0打造云音乐全栈小程序

第1章 首门小程序“云开发”课程,你值得学习本章主要介绍什么是小程序云开发以及学习云开发的重要性,并介绍项目的整体架构,真机演示项目功能,详细介绍整体课程安排.课程适用人群以及需要掌握的前置知识.通过本章的学习,能够使大家对本门课程有一个整体的了解.... 第2章 云开发介绍以及从0构建项目本章会详细介绍小程序云开发与Serverless,并介绍如何开通小程序云开发及控制台的功能,并且初始化项目代码,讲解airbnb/javascript代码规范. 第3章 播放列表功能实现本章完成歌单列表与歌曲

小程序·云开发的HTTP API调用丨实战

小程序云开发之httpApi调用. 小程序云开发之httpApi调用(返回"47001处理") 技术栈 采用 nodejs + express 搭建web服务器,采用 axios 请求第三方 httpApi nodejs express axios 项目结构 通过应用生成器工具 express-generator 可以快速创建一个应用的骨架. 主要的核心文件 routes/base.js(api设置),util/rq.js(axios封装),views/base.pug(接口文档) |

小程序云开发攻略,解决最棘手的问题

背景 最近小程序非常的火,应公司业务发展要求,开发维护了几款小程序,公司开发的小程序都是由后端提供的接口,开发繁琐而复杂,直到小程序出现了云开发,仔细研读了文档之后,欣喜不已,于是我着手开发了本人的第一款小程序 小程序云开发教程地址 点我查看>> 分析 云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥. 优势 无需自建服务器,数据库,