看网上nodejs都是通过转为base64然后让前端处理,没有后端直接生成的版本所以发布一版express+axios+直接返回文件版本
router.get("/getQRcode", async(req, res) => {
try {
let resp=await httpClient.request({
url:'https://api.weixin.qq.com/wxa/getwxacodeunlimit',
method:'POST',
params:{
access_token:accessToken,
},
responseType:'stream',
data:{
check_path:false,
page:'pages/my/index',
scene:'desk=101'
}
})
let filePath=path.join(process.cwd(),'public/files/qr.png')
let ws=fs.createWriteStream(filePath)
resp.data.pipe(ws)
ws.on('finish', () => {
res.download(filePath, 'qr.png')
});
} catch (error) {
res.send({ status: 1, data: error});
}
});