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

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

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

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

注册开发者账号

注册地址: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. [原创]SpringSecurity控制授权(鉴权)功能介绍

    1.spring security 过滤器链 ​ spring security中的除了用户登录校验相关的过滤器,最后还包含了鉴权功能的过滤器,还有匿名资源访问的过滤器链,相关的图解如下: 2.控制授 ...

  2. tesseract-ocr 开源引擎使用

    国内资料比较少 一搜一大堆一样的 你抄我我抄你 前面怎么下载 怎么安装 怎么使用命令 怎么配中文字体 . 跳过.随便搜搜一大堆 科普下说下 box编辑工具  无论怎么搜jTessBoxEditor ( ...

  3. Jenkins的使用(一)

    Jenkins 介绍: Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成 变成可能.前身是Huds ...

  4. Python——Scrapy爬取链家网站所有房源信息

    用scrapy爬取链家全国以上房源分类的信息: 路径: items.py # -*- coding: utf-8 -*- # Define here the models for your scrap ...

  5. JAVA集合框架的特点及实现原理简介

    1.集合框架总体架构 集合大致分为Set.List.Queue.Map四种体系,其中List,Set,Queue继承自Collection接口,Map为独立接口 Set的实现类有:HashSet,Li ...

  6. 小程序自定义tabbar custom-tab-bar 6s出不来解决方案,cover-view不兼容

    1.从微信小程序的官网扣下来的demo,实际测试中,发现6s ios10 系统不兼容,里面的内容出不来 <cover-view class="tab-bar"> < ...

  7. django 开发Broken pipe from ('127.0.0.1', 58078)问题解决

    最近写的一个项目,前端使用了表单submit提交,后端接收POST数据存储.实际上的逻辑并不复杂, django接收到的时候会产生Broken pipe from ('127.0.0.1', 5807 ...

  8. 五、Xpath与lxml类库

    什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...

  9. 逆向破解之160个CrackMe —— 031

    CrackMe —— 031 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  10. python类定义的讲解

    python是怎么定义类的,看了下面的文章大家就会了,不用多说,开始学习. 一.类定义: 复制代码代码如下: class <类名>: <语句> 类实例化后,可以使用其属性,实际 ...