node实现生成带参数的小程序二维码并保存到本地功能示例
本文实例讲述了node实现生成带参数的小程序二维码并保存到本地功能。分享给大家供大家参考,具体如下:
注意:小程序必须要上线才能获取到小程序二维码,否则会报错。。
使用nodekoa2框架,生成小程序二维码,需要引入两个模块
varrequestp=require('request-promise'); varfs=require('fs');//载入fs模块
通过微信接口,获取小程序二维码,并保存到本地。返回图片名称。
varwxapi={}; module.exports=wxapi; //获取二维码 wxapi.qrcode=async(ctx,next)=>{ //获取access_token varaccess_token=global.access_token varqrcodeurl='https://api.weixin.qq.com/wxa/getwxacode?access_token='+access_token letoptions={ method:'POST', uri:qrcodeurl, encoding:null, body:{ "path":'pages/index/index?openid='+ctx.query.openid,//带参数的path "width":280, "is_hyaline":false }, json:true } varimgname='./public/images/'+ctx.query.openid+'.jpg' varimgnameback=ctx.query.openid+'.jpg' fs.exists(imgname,function(exists){ //判断图片是否存在 if(!exists){ //通过微信接口获取小程序码 requestp(options) .then(function(body){ varbase64Img=body.toString('base64');//base64图片编码字符串 vardataBuffer=newBuffer(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 } };
PS:这里再为大家推荐两款二维码相关在线工具供大家参考使用:
在线生成二维码工具(加强版)
http://tools.jb51.net/transcoding/jb51qrcode
在线二维码解码识别工具
http://tools.jb51.net/transcoding/trans_qrcode
希望本文所述对大家nodejs程序设计有所帮助。