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程序设计有所帮助。