node实现生成带参数的小程序二维码并保存到本地功能示例


Posted in Javascript onDecember 05, 2018

本文实例讲述了node实现生成带参数的小程序二维码并保存到本地功能。分享给大家供大家参考,具体如下:

注意:小程序必须要上线才能获取到小程序二维码,否则会报错。。

使用node koa2框架,生成小程序二维码,需要引入两个模块

var requestp = require('request-promise');
var fs = require('fs'); // 载入fs模块

通过微信接口,获取小程序二维码,并保存到本地。返回图片名称。

var wxapi = {};
module.exports = wxapi;
//获取二维码
wxapi.qrcode = async (ctx, next) => {
  //获取access_token
  var access_token = global.access_token
  var qrcodeurl = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='+access_token
  let options = {
    method: 'POST',
    uri: qrcodeurl,
    encoding:null,
    body: {
      "path": 'pages/index/index?openid='+ctx.query.openid,//带参数的path
      "width":280,
      "is_hyaline":false
    },
    json: true
  }
  var imgname='./public/images/'+ ctx.query.openid+'.jpg'
  var imgnameback=ctx.query.openid+'.jpg'
  fs.exists(imgname, function (exists) {
    //判断图片是否存在
    if(!exists){
      //通过微信接口获取小程序码
      requestp(options)
      .then(function (body) { 
        var base64Img = body.toString('base64'); // base64图片编码字符串
        var dataBuffer = new Buffer(base64Img, 'base64');
        //保存到本地
        fs.writeFile(imgname, dataBuffer, function(err) {
          if(err){
            console.log(err);
          }else{
            console.log("保存成功!");
          }
        });
      })
      .catch(function (err) {
        console.log(err)
      });
    }
  })
  //返回图片名
  ctx.body = {
    code: 1,
    img: imgnameback
  }
};
Javascript 相关文章推荐
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
JavaScript SHA512&SHA256加密算法详解
Aug 11 Javascript
jquery实现叠层3D文字特效代码分享
Aug 21 Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
js H5 canvas投篮小游戏
Aug 18 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
基于JavaScript实现留言板功能
Mar 16 Javascript
详解如何在Angular优雅编写HTTP请求
Dec 05 #Javascript
JS+HTML5 canvas绘制验证码示例
Dec 05 #Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 #Javascript
JS实现简单的点赞与踩功能示例
Dec 05 #Javascript
node.js实现为PDF添加水印的示例代码
Dec 05 #Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 #Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
Dec 05 #Javascript
You might like
PHP浮点数的一个常见问题
2016/03/10 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
php提取微信账单的有效信息
2018/10/01 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
js表单登陆验证示例
2016/10/19 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
不可错过的十本Python好书
2017/07/06 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
python实现串口通信的示例代码
2020/02/10 Python
python实现人脸签到系统
2020/04/13 Python
xxx同志考察材料
2014/02/07 职场文书
自荐信如何制作?
2014/02/21 职场文书
霸王洗发水广告词
2014/03/14 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
教师考察材料范文
2014/06/03 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
地心历险记观后感
2015/06/15 职场文书
发票退票证明
2015/06/24 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
java实现面板之间切换功能
2022/06/10 Java/Android