简要介绍

微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数、数据库、存储、CDN等服务,免后端运维。基于云开发可以免鉴权调用微信所有开放能力。

前提准备

创建环境

打开小程序项目,点击工具栏“云开发”进行开通:

根据对话框提示,创建云环境:

选择默认免费配额:

“提交订单”,创建完成。

此后,就可以打开“云开发控制台”了:

创建云函数

云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

首先,配置小程序项目。编辑 project.config.json 添加 cloudfunctionRoot:

{
// ...
"cloudfunctionRoot": "./cloudfunction/",
"cloudfunctionTemplateRoot": "cloudfunctionTemplate"
}

并于根目录新建该目录 cloudfunction ,该目录图标会变成“云目录图标”。

然后,右键云函数根目录,“新建 Node.js 云函数”:

输入云函数名称,就会创建好模板:

使用云函数

编辑 index.js 修改成求和:

// 云函数入口文件
const cloud = require("wx-server-sdk"); cloud.init(); // 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext(); return {
sum: event.a + event.b,
};
};
  • event 是触发云函数的事件。小程序端调用时,就是其请求参数。
  • return 返回云函数计算的结果。小程序端调用时,就是其响应内容。

Taro 调用云函数

Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信/京东/百度/支付宝/字节跳动/QQ 小程序/H5 等应用。

快速创建小程序应用,可见 Taro3 快速开始

Taro 使用云开发,首先需要初始化云环境:

import Taro from "@tarojs/taro";

Taro.cloud.init({
env: "gocoding-xxx",
});

其中 env 环境 ID ,可见“云开发控制台”的“设置”:

然后,调用该云函数:

Taro.cloud
.callFunction({
name: "photo-lucky",
data: {
a: 1,
b: 2,
},
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
  • name 是云函数的名称。
  • data 是请求参数,对应云函数的 event

部署云函数

右键云函数目录,选择“上传并部署”:

编译运行小程序,可见打印结果:

调试云函数

打开“云开发控制台”的“云函数”:

打开“本地调试”,右侧选中“开启本地调试”:

之后,小程序调用云函数就会进“本地调试”。

云开发服务

云函数模板中默认 requirewx-server-sdk,这是一个帮助我们在云函数中操作数据库、存储以及调用其他云函数的微信提供的库。关于 wx-server-sdk 的使用可见 在云函数中使用 wx-server-sdk

其他

云函数是 Node.js 应用,原想直接使用 TypeScript 开发并运行,可参考:

但其调试时默认主入口是 index.js,试了下配置,但没什么用。报错如下:

所以,想用 TypeScript 的话,需要 tsc 编译发布出 js 后再调试。

参考

结语

欢迎关注 GoCoding 公众号,分享日常 Coding 中实用的小技巧、小知识!

微信小程序云开发如何上手的更多相关文章

  1. 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)

    2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...

  2. 微信小程序云开发不完全指北

    微信小程序云开发不完全指北 首先必须说明云开发的"云"并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储.数据库服务的虚拟后台(对于一些轻量小 ...

  3. 微信小程序-云开发(手记)

    微信小程序-云开发(手记) 1.创建data.json文件 注意以下几点要求: 入门示例: init方法的env:默认环境配置,传入字符串形式的环境 ID(理解为数据库)可以指定所有服务的默认环境(意 ...

  4. 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作

    爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...

  5. 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现

    第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...

  6. “我要点爆”微信小程序云开发实例

    使用云开发进行微信小程序“我要点爆”的制作 下一章:“我要点爆”微信小程序云开发之项目建立与我的页面功能实现 接下来我将对“我要点爆”微信小程序进行完整的开源介绍 小程序名称: 我要点爆 查看方式:从 ...

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

    第1章 首门小程序“云开发”课程,你值得学习本章主要介绍什么是小程序云开发以及学习云开发的重要性,并介绍项目的整体架构,真机演示项目功能,详细介绍整体课程安排.课程适用人群以及需要掌握的前置知识.通过 ...

  8. 微信小程序-云开发实战教程

    微信小程序-云开发实战教程 云函数,云存储,云数据库,云调用 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/gettin ...

  9. 微信小程序-云开发-实战项目

    微信小程序-云开发-实战项目 微信小程序 微信小程序平台服务条款 https://developers.weixin.qq.com/miniprogram/product/service.html h ...

随机推荐

  1. property内置装饰器函数和@name.setter、@name.deleter

    # property # 内置装饰器函数 只在面向对象中使用 # 装饰后效果:将类的方法伪装成属性 # 被property装饰后的方法,不能带除了self外的任何参数 from math import ...

  2. [LeetCode题解]21. 合并两个有序链表 | 递归

    解题思路 使用递归实现: 定义函数功能:合并两个有序链表,并返回链表的头 结束条件:两个链表其中一个为空,返回另一个链表 递推公式: l1.val < l2.val:l1.next = Merg ...

  3. 算法:Common Subsequence(动态规划 Java 最长子序列)

    Description A subsequence of a given sequence is the given sequence with some elements (possible non ...

  4. ASP.NET Core使用HostingStartup增强启动操作

    概念 在ASP.NET Core中我们可以使用一种机制来增强启动时的操作,它就是HostingStartup.如何叫"增强"操作,相信了解过AOP概念的同学应该都非常的熟悉.我们常 ...

  5. 转换文件格式遭遇 FileNotFoundError:[WinError 2]系统找不到指定的文件

    重启试试

  6. mac搭建mnmp环境

    brew安装nginx brew install nginx 安装php56 brew tap homebrew/dupes brew tap josegonzalez/homebrew-php br ...

  7. LIS问题$n log_2 n$做法(二分优化)

    #include<bits/stdc++.h> using namespace std; const int inf=1e9+5; const int maxn=1e6+5; int n, ...

  8. Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree 题解(贪心+易错)

    题目链接 题目大意 给你一课树,要你给每一条边分权值,每条边的权值大于0,他们的乘积等于k,而且要使得n-1条边1的数量尽可能少,定义 f(u,v)为u到v的边权和求 \(\max \sum_{i=1 ...

  9. 基于dubbo-config api编写provider,api

    不管是XML配置还是注解方式,最终都会转换成java api对应的配置对象. provider: import com.alibaba.dubbo.config.ApplicationConfig;i ...

  10. Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

    前言 本文主要介绍的是Prometheus采集数据,通过Grafana加上PromQL语句实现数据可视化以及通过Alertmanage实现告警推送功能.温馨提示,本篇文章特长,2w多的文字加上几十张图 ...