Node.js 动态生成二维码并返回图片流的实现

作者:墨池

时间:2026-10-22

浏览:417

本文介绍如何在 Node.js 环境中利用 express 和 qr-image 模块动态生成二维码。通过定义 GET 接口接收参数,调用 qrImg.image 生成图片流并直接管道输出到响应对象,实现前端 AJAX 请求后动态展示二维码图片的功能。

文章目录

Node.js 动态生成二维码接口开发教程

本文分享使用 Node.js 动态生成二维码的具体实现方案,供读者参考。


<!--弹出二维码-->
<div class="qrcode">
  <div>
    <p id="saoma">扫描二维码</p>
  </div>
</div>

前端 JavaScript 代码示例如下:


$.ajax({
   type: 'POST',
   url: '/house',
   data: {
     data:'你的数据'
   },
   dataType: 'json',
   success: function (data) {
     if (data.code == 0) {
        alert("成功");
        $('#saoma').before('<img class="qrcode_show" src="/newQrCode?url='+ data.data +'"alt=""/>');       
     }else {
        alert('失败');
     }
   }
})

Node.js 后端代码示例如下:


var express = require('express');
var request = require('request');
var url = require('url');
var qrImg = require('qr-image');

//生成二维码
app.get('/newQrCode', function (req, res) {
  var par = url.parse(req.url, true).query;
  var thisUrl = par.url;
  var thisParam = par.id;
  var imgUrl = thisUrl + '?id=' + thisParam;
  var img = qrImg.image(imgUrl, { size: 10 });
  res.writeHead(200, { 'Content-Type': 'image/png' });
  img.pipe(res);
});


var bodyParser = require('body-parser');
var urlencodeRarser = bodyParser.urlencoded({ extended: false });
app.post('/house',urlencodeRarser,function (req, res) {
  var data = req.body;
  var result = JSON.stringify({code:0, data:'http://www.baidu.com/&id=' + data.data});
  //console.log(result)
  res.end(result);

});

以上即为本文的全部内容,希望能为读者提供学习上的帮助,也欢迎持续关注本站获取更多技术分享。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章