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

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

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

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

注册开发者账号

注册地址: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. Docker核心组件的关系

  2. 猫狗识别——PyTorch

    猫狗识别 数据集下载: 网盘链接:https://pan.baidu.com/s/1SlNAPf3NbgPyf93XluM7Fg 提取密码:hpn4 1. 要导入的包 import os import ...

  3. c#对象深复制demo

    public class Person : ICloneable { public string Name; object ICloneable.Clone() { return this.Clone ...

  4. Razor Page中的AJAX

    1.由于Razor Pages自带提供防伪令牌/验证,用来防止跨站点请求伪造(称为XSRF或CSRF),所以和MVC框架中API使用方式有稍许的不同. 2.所以在我们使用Razor Pages中的fo ...

  5. mvc控制器接收ajax传送的数据

    视图层中ajax传数据 $.ajax({ type: "post",//提交方式 data: { complay_arry: complay_arry, site_arry: si ...

  6. PIE SDK创建金字塔算法

    1.算法功能简介 为栅格影像建立了金字塔,这些影像便能快速进行显示.除了在屏幕上显示外,金字塔还包含了很多其他信息.如果没有金字塔,那么在显示时就要访问整理栅格数据集,然后进行大量计算来选择哪些栅格像 ...

  7. Java集合Collection基本方法

    jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Collection为List.Se ...

  8. 遇到了Microsoft Visual Studio is Busy!

    最近两天,我点击F5进入调试模式,VS左下角状态显示一直在加载符号文件,然后加载的超级慢,不多一会儿,显示VS正忙!如上图所示. 然后的然后,VS就卡死了~~~.之后,在网上查找原因和解决办法,找来找 ...

  9. Maven项目配置Logback输出JSON格式日志

    最近,项目提出需求,日志需要固定输出为JSON格式,以便后端Flink程序解析. 项目背景 项目为简单的Maven项目,日志由Filebeat采集,因此不需要配置输出至Logstash. 下面为pom ...

  10. 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)

    来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...