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

首先必须说明云开发的“云”并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储、数据库服务的虚拟后台(对于一些轻量小程序就不需要自建服务器了)。

作者也只是刚做了一个微信小程序,有什么问题可以一起探讨。(其实对于不用云开发的小程序还有些好奇,因为云开发的实际上有种傻瓜式一键解决的感觉)。

本博客仅针对一些关键步骤作出陈述,希望初学者能快速得到一个整体的印象,详细的内容请参考官方文档

注册开发者账号

注册地址:https://mp.weixin.qq.com/wxopen/waregister?action=step1

下载开发者工具

下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

建议下载稳定版。

新建一个云开发项目

打开开发者工具,填入项目名和存储路径,选择云开发,注册一个appid或者使用测试号。appid要绑定一个邮箱,注意每个邮箱只能绑定一个appid,测试号的意思就是仅供开发测试使用,不能够上线(而且好像不能使用云开发功能)。

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616181934114-705638149.png)

框架介绍

目录结构

使用appid新建小程序并打开后,会自动生成一个简单的框架,目录结构如下:

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616181937903-1807724348.png)

其中,app.js文件包含着小程序加载时要执行的内容(框架中为初始化云环境),app.json记录这小程序的页面信息以及页面之外的一些内容(比如小程序标题及其所用的格式)。

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616181942947-935357835.png)

注意到目录中比较外层有两个wxss文件其中在miniprogram/style中的wxss文件为页面用,miniprogram下的为非必须项,实际上我也不知道干嘛的,推测只是一个全局配置,在局部配置中找不到相应设置时才会到这个文件中寻找默认设置。

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616181948869-2085694717.png)

在路径miniprogram中的其他两个文件夹,image很好理解,存放页面中需要的图片文件(需要频繁加载的图片文件才会存在这里,会作为小程序的一部分随代码一起上线),pages存放具体的页面信息,pages下的每一个页面都有如下结构

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616182026981-1544079924.png)

其中,js文件即该页面加载时要执行的代码,json文件属于局部配置,在这里定义的话会在当前页面覆盖之前的app.json作为当前页面的配置,wxml即页面实际展示的内容(可以使用[神器html转wxml](https://vlily.github.io//originality/wxmlto.html)),wxss文件即当前页面所用的样式表,可以在此位置定义,也可以导入之前style下的wxss文件。

云开发

在开发者工具左上角位置有醒目的云开发按钮,点击即可进入微信提供的简单后端

![](https://img2018.cnblogs.com/blog/1506386/201906/1506386-20190616181958755-151092404.png)

数据库为简单的json数据库,只有管理员可以从后台直接添加数据。

云函数

云开发中提供的数据库有严格的权限限制,一般来说要允许用户对数据库中的内容进行修改的话,需要定义云函数作为桥梁。云函数实际存储在云开发环境中,但在本地可以快速浏览,在cloudfuntions目录下。每新建一个云函数后需要部署到云环境才能生效。

在这里说一下我在coding时遇到的一个问题,我所查到的所有通过云函数修改数据库的方法都是如下所示:

exports.main = async(event, context) => {
return await db.collection('todos').add({
data: {
description: event.description,
due: event.due
}
})
}

但一直提示我类似多了个括号少了个逗号这种错误(unexpected 啥来着),各种方式解决无果后,将return后面的await删去,程序运行一切正常。

发布

点击开发者工具上方工具栏中的发布可以将当前小程序发布为体验版,体验版只有有限的体验用户可用,体验版可以提交审核(挺快的,半天左右),审核通过的版本才可以正式发布上线。

总结

整体来说微信小程序的云开发还是比较容易上手的,如果做过前段,熟悉js,那要掌握小程序云开发可以说是相当容易了。这种不需要自建后台的开发方式,很适合轻量级小程序使用,类似不需要自建后台的开发方式还有api工厂提供的方法。

总的来说,数据库使用云开发中的json数据库,云存储由云开发提供,用户鉴权和微信登录统一,对数据库的操作在云函数中定义,wxml和wxss文件可以通过html和css转化,相信没多少基础的的人也能很快上手微信小程序的云开发。

微信小程序云开发不完全指北的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 微信小程序云开发如何上手

    简要介绍 微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数.数据库.存储.CDN等服务,免后端运维.基于云开发可以免鉴权调用微信所有开放能力. 前提准备 微信开发者工具 创 ...

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

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

随机推荐

  1. python 练习题:定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程ax^2+bx+c=0的两个解

    请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程 ax^2+bx+c=0的两个解. 提示: 一元二次方程的求根公式为: x1 = (-b + math.sqrt((b ...

  2. VS2008激活找不到密匙输入框

    VS2008试用版到期后会无法使用,网上一搜就能找到很多激活码: Visual Studio 2008 Professional Edition: XMQ2Y-4T3V6-XJ48Y-D3K2V-6C ...

  3. asp.net core流式上传大文件

    asp.net core流式上传大文件 首先需要明确一点就是使用流式上传和使用IFormFile在效率上没有太大的差异,IFormFile的缺点主要是客户端上传过来的文件首先会缓存在服务器内存中,任何 ...

  4. centos7 配置nginx vim语法高亮

    看了Nginx核心知识100讲,按照他的做法,没有配置成功,可以使用下面的方法: 下载nginx源码,http://nginx.org/en/download.html 这里下载的是:nginx-1. ...

  5. PIESDKDoNet二次开发配置注意事项

    在安装完PIESDK进行二次开发的过程中会遇到下面几种常见的开发配置问题,就写一个文档总结一下. 1.    新建项目无PIESDK模板问题 关于新建项目时候,找不到下图中的PIEMainApplic ...

  6. 基于tensorflow训练模型的显存不足解决办法

    import tensorflow as tfimport osos.environ["CUDA_VISIBLE_DEVICES"] = '0' #指定第一块GPU可用config ...

  7. P2352 队爷的新书(差分)

    题目 P2352 队爷的新书 解析 题目意思是 给你n个区间,选择一个数x,使\(x\times覆盖x的区间个数\) 最大 和这个题差不多 差分,离散化一下,在区间的\(l\)处\(+1\),\(r+ ...

  8. 为a标签添加鼠标样式和背景颜色

    发现对a标签设置行高,高度,宽度都只能使样式应用到文字上,而不是自己想要的带空白的整个区域,这个时候,可以使用padding样式为其设置内边距,来增大面积,从而使其样式能充满空白,更加好看. .btn ...

  9. Java 之 JDK 1.8 新增日期时间类型

    一.原来的日期时间 Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了.而Calendar并不比Date好多少.它们面临的问题是: ① 可 ...

  10. 第一篇 Scrum 冲刺博客

    一.各个成员在 Alpha 阶段认领的任务 姓名 Alpha 阶段认领的任务 林剑峰 用户信息页面:完成用户信息的上传 石竞贤 发布信息页面:完成用户图片上传云存储的功能,并且把发布信息上传到云数据库 ...