node.js - Nodejs - 如何在 View 中显示 qr-image 结果

标签 node.js qr-code ejs embedded-javascript

我使用 Nodejs 的 qr-image 插件生成二维码,效果很好。

问题是在 ejs 中显示结果图像。

var express = require('express');
var router = express.Router();
var qr = require('qr-image');

router.get('/', function(req, res) {
    var code = qr.image("text to show in qr", { type: 'png', ec_level: 'H', size: 10, margin: 0 });
    res.type('png');
    code.pipe(res);
    // res.render('index', { title: 'QR Page', qr: code });
});

当我取消注释最后一行时,nodejs 崩溃了。 如何发送代码作为变量查看?

更新:

此代码在结果页面中返回 [object Object]

var code = qr.image("text to show in qr", { type: 'png', ec_level: 'H', size: 10, margin: 0 });
res.render('index', { title: 'QR Page', qr: code });

console.log(code) 也显示了这一点:

{ _readableState:
   { highWaterMark: 16384,
     buffer: [],
     length: 0,
     pipes: null,
     pipesCount: 0,
     flowing: false,
     ended: false,
     endEmitted: false,
     reading: false,
     calledRead: false,
     sync: true,
     needReadable: false,
     emittedReadable: false,
     readableListening: false,
     objectMode: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  domain: null,
  _events: {},
  _maxListeners: 10,
  _read: [Function] }

最佳答案

您正在尝试将渲染图像填充到模板引擎中;这是行不通的。

您应该在模板中使用图像标记,指向响应图像的 URL。

//根据评论编辑

router.get('/qr/:text', function(req,res){
   var code = qr.image(req.params.text, { type: 'png', ec_level: 'H', size: 10, margin: 0 });
   res.setHeader('Content-type', 'image/png');
   code.pipe(res);
}

然后在您的 html 模板中,制作一个 src 设置为 /qr/whatever text 的图像标签,您应该处于良好状态。

关于node.js - Nodejs - 如何在 View 中显示 qr-image 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27490742/

相关文章:

ios - 在 xCode 中编码 QR 码/测试可能吗?

cordova - Ionic cordova - 二维码生成示例

javascript - 基于 HTML 下拉列表 Node JS 更改 MySQL 查询

angularjs - 如果使用 Angular ,模板引擎有用吗?

javascript - 使用 nodejs 和 expressjs 通过 URL 将文件上传到服务器

node.js - 为什么这个 if/else 在 ejs 中不起作用?

c# - 免费的 c# QR 代码生成器

javascript - EJS 使用获取的 json 数据和 d3 图表

node.js - 编译后从 typescript 命名空间导出类给出未定义(NestJS)

Node.js 路由和异步函数