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

一、最基本的小程序前端例子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. django 路由层 伪静态网页 虚拟环境 视图层

    路由层 无名分组 有名分组 反向解析 路由分发 名称空间 伪静态网页 虚拟环境 视图层 JsonResponse FBV与CBV 文件上传 项目urls.py下面 from app01 import ...

  2. Codeforces 1238C. Standard Free2play

    传送门 题目别看错了,好像挺多人都读错了... 然后显然可以贪心,只有在需要用 $\text{magic crystals}$ 的时候才用 那么直接模拟即可 如果初始相邻两个突出的平台高度不连续那么我 ...

  3. Java面试知识点汇总

    Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总   版权声明 ...

  4. asp.net 13 缓存,Session存储

    1.缓存 将数据从数据库/文件取出来放在服务器的内存中,这样后面的用来获取数据,不用查询数据库,直接从内存(缓冲)中获取数据,提高了访问的速度,节省了时间,也减轻了数据库的压力. 缓冲空间换时间的技术 ...

  5. 向PHP发送HTTP-Post请求

    欢迎访问我的个人博客,获取更多有用的东西 链接一 链接二 也可以关注我的微信订阅号:CN丶Moti 1.post.html <!DOCTYPE html> <html lang=&q ...

  6. 关于jar冲突的解决方向servlet-api

    1.可以考虑尽量往  java自带的jar  靠  比如说jdk-tools 2.如果用springboot项目  让其他jar 排除servlet-api的依赖 <dependency> ...

  7. Spring中常用的设计模式之:代理模式

    看了tom老师讲的深入分析spring源码,讲的挺好,做个小总结 代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以 ...

  8. source命令用法:

    命令格式 source FileName 作用 在当前bash环境下读取并执行FileName中的命令. 注意 该命令通常用命令"."来替代.如:source .bash_rc 与 ...

  9. WLW模板插件Text Templat的应用举例

    WLW的模板插件:WLWTextTemplates 安装之后,如下图所示: 点击这个按键之后,出现下图: 按上图提示点击"Add new Template",出现下图:   举个例 ...

  10. layui 数据表格自适应高度

    添加css .layui-table-cell { height: inherit; } .layui-table-cell { height: inherit;}