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 相关文章推荐
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
Feb 03 Javascript
node.js中的fs.readFile方法使用说明
Dec 15 Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
JavaScript 中 avalon绑定属性总结
Oct 19 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
Jan 25 Javascript
浅谈React 服务器端渲染的使用
May 08 Javascript
vue.js的简单自动求和计算实例
Nov 08 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
JavaScript实现串行请求的示例代码
Sep 14 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
PHP制作图型计数器的例子
2006/10/09 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
在Python中关于中文编码问题的处理建议
2015/04/08 Python
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
浅谈Python中的私有变量
2018/02/28 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Puppeteer使用示例详解
2019/06/20 Python
Python3 合并二叉树的实现
2019/09/30 Python
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
如何选择使用结构还是类
2014/05/30 面试题
linux下进程间通信的方式
2014/12/23 面试题
给老师的道歉信
2014/01/11 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
给客户的感谢信
2015/01/21 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis