由于无法备案网站,前期做了个微信小程序(开发版)就搁置了,几乎忘了开发过程。现在重新梳理,做个记录。

一、最基本的小程序前端例子hello

1、下载安装  微信开发者工具  官网: https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html

2、运行后首先提示扫码,在手机上确认登录(我以前注册过微信公众平台,如果你未注册过的话,可能需要先去注册)。登录后,页面显示了我之前做的几个小程序项目。排第一个的是一个加号(+),用来新建项目。

3、点上步的加号(+),新建项目名称写的是:hello  ; 目录 我设的是:E:\wxDEV\hello;AppId 我点选的是:测试号;开发模式:小程序;后端服务:默认不使用云服务;语言:javascript ; 然后点:新建

4、在 微信开发者工具 界面上,点三个横点(…)弹出E:\wxDEV\hello硬盘目录,里面就是小程序前端代码了。点预览(眼睛形状)图标,会弹出二维码,用手机扫码后,可以在手机上测试使用小程序了。(在手机微信中的微信页面,向下滑动,会出现最近使用过的小程序)

5、但那些代码表示什么呢?手册在:https://developers.weixin.qq.com/miniprogram/dev/framework/  下面分析一下E:\wxDEV\hello中的代码文件

5.1、sitemap.json  文件中有个链接:https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html;看了一下,是控制微信爬虫,即是否允许页面内容被用户搜索到

5.2、project.config.json  项目配置文件:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html   如:可以设置为小程序插件项目。

5.3、app.wxss    https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html 相当于CSS样式表文件。

5.4、app.json  https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE  小程序配置,又分为全局配置和页面配置。如:有哪些页面,页面标题、颜色等

5.5、app.js https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html 注册小程序APP实例,大概相当于程序入口的main函数吧。

6、目录utils下有util.js 大概是引入外部 js文件;参考:https://www.cnblogs.com/wangting888/p/9701658.html

7、目录pages下有两个目录,index和logs,每个目录表示一个小程序页面。其中,后缀为.wxml的相当于html页面,其它类似前面介绍的,分别是样式表、配置和js代码文件。参考:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/

二、只有前端是不够的,没条件搭服务器怎么办?好在微信开发者工具提供了强大的云开发能力,参考上面步骤,新建项目helloyun(云端是node.js语言)

1、参考上面第3步新建小程序项目,项目名称:helloyun  ;  目录:E:\wxDEV\helloyun ; AppID:只能选择自己注册的AppID,测试号无法云开发;开发模式:小程序;后端服务:小程序云开发;然后点 新建。云开发的例子已生成。可以点预览,并在手机上查看了。手机上小程序本身就相当于教程,其中介绍了两种操作云端数据库(或函数、调用)的办法:一是前端操作数据库;二是在cloudfunctions目录中新建云函数,使用wx-derver-sdk

参考:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

2、云开发项目的目录看似更简洁,E:\wxDEV\helloyun目录结构如下:

--cloudfunctions(目录)

--miniprogram(目录)

-project.config.json

-README.md

3、miniprogram对应的小程序前端(与本文第一部分类似),对应云端的是cloudfunctions目录(2019年8月8日生成的云开发项目,与以前用旧版开发工具生成的目录结构不一样了),新版的 E:\wxDEV\helloyun\cloudfunctions 目录下有4个目录:

-callback

-echo

-login

-openapi

4、先从手机的云开发QuickStart入手,点上传图片,然后拍照上传。根据上传后的提示,打开开发者工具,点云开发,进入云开发控制台(确认你是否已开通了云开发功能),在 存储 下,可以看到刚上传的my-image.jpg。

我们还是从前端入手分析,在开发者工具中, 查看E:\wxDEV\helloyun\miniprogram\pages\index\index.wxml  的代码。找到 上传图片 字样。对应的bindtap是

doUpload。在同目录的E:\wxDEV\helloyun\miniprogram\pages\index\index.js 中,找到doUpload,可看出上传照片最主要的是用wx.chooseImage和

wx.cloud.uploadFile。
5、多次拍照上传,会发现上传照片会被覆盖,于是在上一步的doUpload函数中加个随机数,由原来的:
const cloudPath = 'my-image' + filePath.match(/\.[^.]+?$/)[0]  改为:
const cloudPath = 'my-image'+ Math.random() + filePath.match(/\.[^.]+?$/)[0]   
然后上传的图片就不会被覆盖了。
我们还可以在云存储中新建目录 如:goods   然后将代码改为:
const cloudPath = 'goods/my-image' + Math.random() + filePath.match(/\.[^.]+?$/)[0]  ,
编译,预览,你会发现图片上传到了云存在的goods目录下。
在  云开发控制台 的  数据库  中创建  goods 集合名称。设置权限为所有人可读。
为了方便测试,在E:\wxDEV\helloyun\miniprogram\pages\index\index.wxml 的最后一个</view>之前,加以下代码
<view class="uploader">
<button class="uploader-text" bindtap="mydbadd">数据库add</button>
</view>

同时,在E:\wxDEV\helloyun\miniprogram\pages\index\index.js的最后一个})之前,加以下代码(也就是E:\wxDEV\helloyun\miniprogram\pages\databaseGuide\databaseGuide.js中的代码)

//my测试数据库add
mydbadd: function() {
const db = wx.cloud.database()
db.collection('goods').add({
data: {
count:
},
success: res => {
// 在返回结果中会包含新创建的记录的 _id
this.setData({
counterId: res._id,
count:
})
wx.showToast({
title: '新增记录成功',
})
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '新增记录失败'
})
console.error('[数据库] [新增记录] 失败:', err)
}
})
},

编译,点击  数据库add按钮  后,会看到后台数据库中新增了一条记录(确保已在后台数据库中设置了goods集合)。开发者工具 控制台console中也有相应的提示。

在开发者工具中的 cloudfunctions目录 点鼠标右键,可以新建、上传、同步云函数(也可直接在)。从云开发控制台中可以看到我以前写的几个云函数,忘了是干什么用的,可以同步到本地查看。同步下来后,在开发者工具中的相应目录图标会变成一朵云。
在项目根目录找到 project.config.json 文件,可以看到已经有了cloudfunctionRoot 字段(如果没有,就按官方教程增加)
然后在开发者工具中的 cloudfunctions目录 点鼠标右键,增加名为sum的云函数,会在 cloudfunctions目录下生成sum目录及E:\wxDEV\helloyun\cloudfunctions\sum\index.js
让我们在index.js中的返回值中增加一句:sum: event.a + event.b,即,将index.js的代码修改如下:
// 云函数入口文件
const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext() return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
sum: event.a + event.b,
}
}
为了省事,我直接修改了上面第6步的    mydbadd函数代码
//my测试数据库add
mydbadd: function() {
const db = wx.cloud.database()
db.collection('goods').add({
data: {
count:
},
success: res => {
// 在返回结果中会包含新创建的记录的 _id
this.setData({
counterId: res._id,
count:
})
wx.showToast({
title: '新增记录成功',
})
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '新增记录失败'
})
console.error('[数据库] [新增记录] 失败:', err)
}
})
wx.cloud.callFunction({
// 云函数名称
name: 'sum',
// 传给云函数的参数
data: {
a: ,
b: ,
},
})
.then(res => {
console.log(res.result) //
})
.catch(console.error)
},

这样,在增加数据库数据的同时,就会调用云函数,并在开发者工具的console中显示调用结果。

 
 
 
参考:
Js文件函数中调用另一个Js文件函数的方法,https://www.cnblogs.com/cxx8181602/p/9340678.html
 

微信小程序开发入门教程(一)---hello world的更多相关文章

  1. 微信小程序开发入门教程

    做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先 ...

  2. 微信小程序开发入门教程(三)---小程序云开发支付功能

    支付(shoukuan)功能真的很重要!由于我还没有商户号,以下代码未实际验证 1.服务端 进入云开发,新建云函数pay(应该也可以在开发者工具编写后上传) 编写后端代码index.js这里用到第三方 ...

  3. 微信小程序开发入门教程(四)---自己动手做个小程序

    前面已将基础知识准备的差不多了,下面实际做一个小程序. 一.目标 用于上传照片和文字. 2个主要页面:我me,设置set 二.开始制作 1.打开微信开发者工具(我用的1.02.1907160 Wind ...

  4. 微信小程序开发入门教程(二)---分析官方云开发例子中的一些功能

    接上一篇文章:https://www.cnblogs.com/pu369/p/11326538.html 1.官方云开发的例子中,点击获取 openid,对应代码在E:\wxDEV\helloyun\ ...

  5. 微信小程序开发系列教程三:微信小程序的调试方法

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...

  6. 微信小程序开发入门与实践

    基础知识---- MINA 框架 为方便微信小程序开发,微信为小程序提供了 MINA 框架,这套框架集成了大量的原生组件以及 API.通过这套框架,我们可以方便快捷的完成相关的小程序开发工作. MIN ...

  7. 微信小程序开发入门篇

    本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果. 开发准备工作 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的& ...

  8. 微信小程序 新手入门教程

    因为工作需要,最近学习了一下微信小程序,在此分享一下大概的流程. 强烈建议大家先去看微信小程序简易教程:点我进入 起步: 安装微信web开发软件者工具,需要破解的同学可以网上找破解教程,很简单的,这里 ...

  9. 微信小程序开发入门首选

    推荐一本书吧,直接上图,微信开发,微信网页开发,微信小程序开发,都用得着. 推荐一本书吧,直接上图,微信开发,微信网页开发,微信小程序开发,都用得着. 推荐一本书吧,直接上图,微信开发,微信网页开发, ...

随机推荐

  1. Jmeter之Plugin插件,服务器监控

    Jmeter Plugins插件 我在测试工作中:主要使用了监听器中的图表报告和监控服务器CPU,内存(这篇博文就是对插件的安装,以及jmeter怎么监控服务器CPU~) 1.下载安装Plugins插 ...

  2. Java 注解(原理及其使用)

    一.注解(annotation)介绍 Java在JDK5中引入源代码的注解机制. 1.什么是注解? 注解为代码添加了元数据,元数据是关于数据的组织.数据域及其关系的说明信息. 更通俗的说,注解为程序元 ...

  3. 01docker基本概念

    docker基本概念 官方文档URL:https://docs.docker.com/ 1.Docker的构想是要实现"Build, Ship and Run Any App, Anywhe ...

  4. 你真的知道em和rem的区别吗?

    前言 em 和 rem 都是相对单位,在使用时由浏览器转换为像素值,具体取决于您的设计中的字体大小设置. 如果你使用值 1em 或 1rem,它可以被浏览器解析成 从16px 到 160px 或其他任 ...

  5. ES6基础之——get 与 set

    class Chef{ constructor(food){ this.food = food; thid.dish = []; } //getter get menu(){ return this. ...

  6. \ n是将输出换行符的javascript的转义符。

    \ n是将输出换行符的javascript的转义符.<br/>是表示新文本行的HTML标签.JavaScript是一种脚本语言,而HTML是一种标记语言.如果使用javascript的文档 ...

  7. java_day05_类和对象

    chap05目标:类和对象---------------------------------------------- 1.OOP特征概述 Java的编程语言是面向对象的,采用这种语言进行编程称为面向 ...

  8. Tomcat集成到MyEclipse

    1.Tomcat集成到MyEclipse 使用MyEclipse配置服务器后,就可以使用MyEclipse来启动和停止服务器了.当然,你需要先安装好服务器(Tomcat),才能配置.MyEclipse ...

  9. 微软宣布加入机密计算联盟,与谷歌和BAT 等巨头联手保护数据安全

    联盟创始成员还包括阿里巴巴.Arm.百度.谷歌.IBM.英特尔.红帽.瑞士电信和腾讯等科技公司,它提供了一个让行业聚集起来的机会,以促进使用机密计算来更好地保护数据. 建立机密计算联盟的需求源于这样一 ...

  10. C获取数组长度

    c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数) 如: { int data[4]; int length; length=sizeof(data)/sizeof(data[ ...