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 相关文章推荐
JavaScript 动态添加表格行 使用模板、标记
Oct 24 Javascript
基于jQuery选择器的整理集合
Apr 26 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
Oct 14 Javascript
Bootstrap Table使用整理(一)
Jun 09 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
layui实现下拉框三级联动
Jul 26 Javascript
vue封装swiper代码实例解析
Oct 08 Javascript
JS面向对象实现飞机大战
Aug 26 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小偷的核心程序
2007/04/09 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
详解Swift中属性的声明与作用
2016/06/30 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Sanic框架流式传输操作示例
2018/07/18 Python
python批量修改图片大小的方法
2018/07/24 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
阿波罗盒子:Apollo Box
2017/08/14 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
教师批评与自我批评范文
2014/10/15 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
汽车销售员工作总结
2015/08/12 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android