Node.js-如何在视图中显示二维图像结果 [英] Nodejs - How to show qr-image result in view
问题描述
我使用 qr-image
插件为Node.js生成QR码,效果很好。
I use qr-image
plugin for Nodejs to generate a QR code and it works pretty good.
问题是在ejs中显示结果图像。
The problem is showing result image in 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崩溃。
如何发送代码
以查看为变量?
When i uncomment last line, nodejs crashs.
How to send code
to view as a variable?
更新:
此代码在结果页中返回 [object Object]
。
This code returns [object Object]
in result page.
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)显示如下:
Also console.log(code) shows this:
{ _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] }
推荐答案
您正在尝试将渲染的图像填充到模板引擎中;
You're trying to stuff a rendered image into a template engine; it's not going to work.
您应该在模板中使用图像标签,该图像标签指向响应图像的URL。
You should instead have an image tag in the template that points to a URL that responds with the image.
//基于注释进行编辑
// Edit based on comment
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 /任何文本
进行图像标记,您应该形状不错。
Then in your html template, make an image tag with the src set to /qr/whatever text
and you should be in good shape.
这篇关于Node.js-如何在视图中显示二维图像结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!