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实现网站超链接和图片提示效果
Mar 21 Javascript
Javascript实现获取窗口的大小和位置代码分享
Dec 04 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
早该知道的7个JavaScript技巧
Jun 21 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
Vue三层嵌套路由的示例代码
May 05 Javascript
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
微信小程序在线客服自动回复功能(基于node)
Jul 03 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数据类型之布尔型的介绍
2013/04/28 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
js new Date()实例测试
2019/10/31 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Python六大开源框架对比
2015/10/19 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
如何通过python实现人脸识别验证
2020/01/17 Python
python利用platform模块获取系统信息
2020/10/09 Python
Django跨域请求原理及实现代码
2020/11/14 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
技术经济专业求职信
2014/09/03 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
公司酒会主持词
2015/07/02 职场文书
国庆节新闻稿
2015/07/17 职场文书