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 相关文章推荐
js 跨域和ajax 跨域问题小结
Jul 01 Javascript
Javascript 匿名函数及其代码模式原理
Mar 19 Javascript
javascript中怎么做对象的类型判断
Nov 11 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
微信小程序实现预览图片功能
Oct 22 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 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
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
Python异常处理操作实例详解
2018/08/28 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python实现TCP通信的示例代码
2019/09/09 Python
python实现大量图片重命名
2020/03/23 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
大一学生职业生涯规划
2014/03/11 职场文书
国际金融专业自荐信
2014/07/05 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年采购部工作总结
2014/11/20 职场文书
地球一小时活动总结
2015/02/27 职场文书
工作自我评价范文
2015/03/05 职场文书
值班管理制度范本
2015/08/06 职场文书