// 为Promise添加finally方法支持 Promise.prototype.finally = function (callback) {   let P = this.constructor;   return this.then(     value => P.resolve(callback()).then(() => value),     reason => P.resolve(callback()).then(() => {       throw reaso…
微信小程序开发 -- 通过云函数下载任意文件 1.云开发介绍 ​ 微信小程序开发者众所周知,小程序开发拥有许多限制,当我还是一个菜鸟入门的时候,第一关就卡在了没有备案域名的HTTP请求上面,那时候云开发上线也没多久,使用的人也不是很多,我抱着尝试的态度去接触了云开发,发现了云开发的妙处.(自由) blog:微信小程序HTTP访问链接解决方案 2.小程序文件下载限制 微信小程序除了对访问地址有限制之外,对于文件下载,也存在的限制,如下图所示,只有资源服务器A,在downloadFile域名白名单内…
最近在做云开发博客小程序 采集微信发布的信息放入数据库会有createTime因此发现了不一样的地方 云函数可以直接使用 但是放到引导全局的app.js文件却是找不到该方法-->dateformat() 创建小程序项目时会默认生成一个utils/util.js文件,里面的内容主要如下: const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day…
1.编写加法运算的云函数addData 2.在本地小程序页面调用云函数…
一.云函数获取商品信息 1.创建云函数getData,云函数功能:获取商品信息 2.在本地小程序页面调用云函数getData  二.云函数修改商品信息 1.创建云函数updateData,云函数功能:更新商品价格 2.在本地小程序页面调用云函数updateData 三.云函数删除商品信息 1.创建云函数removeData,云函数功能:删除商品信息 2.在本地小程序页面调用云函数removeData…
前言: 有在学vue的网友问如何封装网络请求,这里以正在写的小程序为例,做一个小程序的请求封装. 关于小程序发起 HTTPS 网络请求的Api,详情可以参考官方文档:wx.request(Object object). 如果直接使用官方提供的个Api,那么每次在进行网络请求调用时,我们都要按官方文档上说的那样传递需要设置的请求参数,然后对不同的请求相应结果做不同的处理.但是前端同服务器端的接口请求中有大部分的请求参数以及响应结果处理都是很类似的,也就没有必要对所有请求代码都重新敲敲一遍,那么对原…
微信小程序和支付宝小程序的api封装方法是一样的,都是外部新建一个js,使用module.exports导出,要注意的是,最好使用post请求,虽然get请求没什么不好,主要是好修改.这里使用的MD5进行了token加密,最好还是把md5.js单独写下来(MD5函数js) var app = getApp(); // 引入app.js里初始化数据 var MD5 = require('./md5.js') function ApiFun (url,params) { var param = {}…
微信小程序数据来源,是通过接口实现的.但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例. 配置接口 config.js 聚合数据请求接口需要以key作为参数. const config = { api_base_url: "http://apis.juhe.cn/goodbook", key: "93bdf89de207034fa6c7544f88b99c76" }; export { config } 封装 wx.request 方法 E…
相信大家在做小程序的时候不可避免的会碰到支付功能小程序的支付和pc的是有区别的小程序的支付方法为 wx.requestPayment wx.requestPayment({ timeStamp: '', //时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间 nonceStr: '', //随机字符串,长度为32个字符以下 package: '', //统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*** signType: '…
1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID . 注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要操作"绑定开发者".即在"用户身份"-"开发者"模块,绑定上需要体验该小程序的微信号.本教程默认注册帐号.体验都是使用管理员…
背景 我们的小程序项目的构建是与web项目保持一致的,完全使用webpack的生态来构建,没有使用小程序自带的构建功能,那么就需要我们配置代码转换的babel插件如Promise.Proxy等:另外,项目中涉及到异步的功能我们统一使用async/await来处理.我们知道,小程序的onError 生命周期只能捕获同步错误,而完全不采用小程序自带构建工具的情况下,开发模式下遇到的问题: 小程序异步代码中的异常onError无法捕获,开发者工具控制台也没有抛出异常信息 这样在开发过程中页面展示异常,…
问题描述: 当我们初始化一个小程序时,默认文件 app.js 中有onLaunch函数, onLaunch: function () { console.log("onLaunch"); wx.login({ success: res => { console.log("login"); // 发送 res.code 到后台换取 openId, sessionKey, unionId } }) } 默认目录,"pages/index/index&qu…
习惯性使用console.log打印获取到的数据,信息等,然后上星期大佬看见了说怎么那么多打印信息出来,线上那个也是吗?问我能不能线上的就不打印出来? 我就说那就封装一个打印函数呗. 重写一个没问题,问题是之前写了那么多,都不知道写去哪儿了,不想找,所以决定重写console.log算了. //重写console.log方法,判断是否开启日志调试模式,否则就不输出 console.log = (function(oriLogFunc){ return function(str){ if (Con…
云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端,具有管理员权限,只要能调用云函数上传文件就可以解决这个问题了 参照官方文档中云函数的写法 const cloud = require('wx-server-sdk') const fs = require('fs') const path = require('path') exports.main…
1. project.config.json写上云函数所在目录"cloudfunctionRoot": "cloudfunctions/",如图 2. app.json写上“cloud”:true,如图 app.js写上(这步是将用户访问记录到用户管理中,在控制台中可见) onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.clou…
async await比Promise更好的解决异步操作问题,但是在小程序中直接使用会出现以下的错误提示 是因为缺少了regeneratorRuntime这个模块,需要从外部引入 1.在新建的文件夹中执行 npm init ,生成package.json文件(一路回车就好) 2.执行 npm install regenerator@0.13.1 3.找到并将node_modules/regenerator-runtime/runtime.js复制到小程序项目中 4.在需要使用到async awa…
时间:2020/01/23 步骤 1.在微信开发者工具中云函数所在的文件夹的图标与其他文件夹是不同的,如下(第一个是云函数): 如果需要使一个普通文件变为云函数文件夹,需要在project.config.json(配置文件)中添加一行: "cloudfunctionRoot": "cloudfunctions/", 2.要使用云函数必须先安装node.js,安装后在cmd中输入node -v和npm -v打印版本号就可以知道是否安装成功. 3.需要为云函数安装wx-…
关键技术点: 作用域问题——回调函数中的作用域已经脱离了调用函数了,因此需要在回调函数外边把this赋给一个新的变量才可以了. 业务需求: 微信小程序开发,业务逻辑需要,需要把获取手机号码的业务逻辑作为检验登录有效性函数的回调函数. 异常描述: 微信小程序开发给data中的变量赋值,出现以下错误: VM1610:1 thirdScriptError Cannot read property 'setData' of undefined;at pages/index/index checkSess…
微信小程序 定义全局数据.函数复用.模版等 微信小程序定义全局数据.函数复用.模版等问题总结: 1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp();  app.function/key的方式调用,不过我们没有必要再app.js中定义全局函数. 2.如何实现代码的复用 函数的复用: test.js test: function(){ } module.exports={ test:test } other.js v…
一.数据库获取数据 1.1 数据库获取数据的写法 在本地创建的页面js文件中写代码 1.2 数据库获取数据返回数据限制20条 数据库获取数据,每次返回20条数据(数据库有108条数据) 1.3 数据库获取数据权限设置 数据库获取数据时,想要获取成功,必须设置相应权限,将默认的[仅创建者可读写]变更为[所有用户可读,仅创建者可读写]  二.云函数获取数据 2.1 云函数获取数据的写法 1.在云端的云函数的js文件中获取数据 2.在本地创建的页面js文件中调用云函数  2.2 云函数获取数据每次返回…
/** * 将回调地狱转换为 Promise 形式 * https://blog.csdn.net/SEAYEHIN/article/details/88663740 * raw: wx.downloadFile({ url: this.data.curImg, success: res => { console.log(20191121213856, res) } }) now: async go() { const downloadFile = this.app.pm(wx.download…
WXML: <view class="container"> <view wx:for="{{list}}" wx:key="this" style="padding: 10px 0;border-bottom: 1px solid #ddd;"> <view> {{index+1}}.{{item.name}} </view> <view class="text…
一.调用初始云函数获取openid的两种方法 1.传统的success和fail 2.ES6的.then和.catch 3.编译结果 说明:初始云函数,是指刚创建完成的云函数.默认系统写的代码.…
WXML: <view id=" bindtap="tapName"> Click me! </view> JS: Page({ tapName: function (event) { //获取数据详情所有内容: console.log(event) //获取数据绑定的data- 所有的数据 console.log(event.currentTarget.dataset.id); console.log(event.currentTarget.data…
一.检查云函数环境 检查云函数环境时候,鼠标右键点击查看当前环境.如果存在多个云开发环境,要确保云函数的当前环境要与app.js中evn的环境值一致. 如果不一致,则鼠标右键切换当前云开发环境.(如果存在多个云开发环境可以进行切换) 二.创建云函数 点击创建的云函数文件夹>鼠标右键>新建Node.js云函数 将新建的Node.js取名为getData,点击enter后,getData文件夹下面自动生成三个文件:config.ison,index.js,package.json.…
一.新建云函数文件夹 新建的云函数文件夹,命名为cloud,该文件夹一定要与pages文件夹同级.此时该文件夹的前面没有云朵的标识.  二.配置project.config.json文件 在project.config.json文件里面配置云函数所在的目录为cloud.代码 "cloudfunctionRoot": "/cloud", 注意:代码中的cloudfunctionRoot中的R一定要大写,oot一定要小写. 代码写完后,点击保存.此时cloud文件夹的图…
一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可免鉴权直接使用平台提供的API进行业务开发 目前云开发包含:云数据库,云函数,云存储,云调用 优势 无需搭建服务器,只需使用平台提供的各项能力,即可快速开发业务. 无需管理证书.签名.秘钥,直接调用微信 API .复用微信私有协议及链路,保证业务安全性. 支持环境共享,一个后端环境可开发多个小程序.…
逻辑层js文件 微信小程序前端进行了层次划分,分为逻辑层和视图层.逻辑层实现对数据的加工和处理.与HTML页面相似,逻辑层使用JavaScript编写.逻辑层将数据处理后发送至视图层,同时接受视图层的反馈,官方在JavaScript的基础上进行了一些封装和修改,主要有以下: 提供了App和Page方法,用来进行程序和页面的注册. 提供了丰富的API,如扫一扫.支付等微信功能. 每个页面有独立的作用域,并提供模块化能力. 由于框架并非运行在浏览器中,所以JavaScript在Web中的一些能力无法…
silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方的文章属于本人或他人转发,不一定及时同步.原文链接是: http://www.happycxz.com/m/?p=32 重要事项二: 目前本文中提到的API已支持微信小程序录音文件格式:silk v3.mp3. 注:微信小程序开发工具上的录音不论是新接口还是老接口,都是webm/base64格式,虽…
简介 相信看到这篇文章的同学,都已经对微信小程序的api文档有所了解了,也都经历了微信小程序api回调函数嵌套的痛苦,才会想要通过Promise解决回调地狱这个问题,我下面就直接介绍怎么在小程序中使用promise. 历史问题 很多同学肯定看到一些介绍微信小程序中使用Promise的文章,告诉你说微信小程序不支持Promise,需要自己引入es6-promise,或者需要使用一些第三方的promise,就我看到的如bluebird等,老版本的微信小程序应该是不支持es6中的Promise的,但是…