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 相关文章推荐
splice slice区别
Oct 09 Javascript
通过javascript设置css属性的代码
Dec 28 Javascript
利用JS实现浏览器的title闪烁
Jul 08 Javascript
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
jQuery取id有.的值的方法
May 21 Javascript
浅谈js中的延迟执行和定时执行
May 31 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
Mar 07 Javascript
jquery实现动态改变css样式的方法分析
May 27 jQuery
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 Javascript
如何HttpServletRequest文件对象并储存
Aug 14 Javascript
原生JS实现京东查看商品点击放大
Dec 21 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改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
js实现二级导航功能
2017/03/03 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python制作数据导入导出工具
2015/07/31 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python中pillow知识点学习
2018/04/30 Python
Python小进度条显示代码
2019/03/05 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
驾驶员安全责任书范本
2014/07/24 职场文书
铁路安全反思材料
2014/12/24 职场文书
英语教师求职信范文
2015/03/20 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
欠条格式范本
2015/07/03 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书