Node.js Nodejs-如何在视图中显示qr图像结果

Node.js Nodejs-如何在视图中显示qr图像结果,node.js,qr-code,ejs,embedded-javascript,Node.js,Qr Code,Ejs,Embedded Javascript,我使用Nodejs的qr-image插件生成一个qr码,效果非常好 问题是在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_leve

我使用Nodejs的
qr-image
插件生成一个qr码,效果非常好

问题是在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崩溃。 如何发送
code
以作为变量查看

更新:

此代码在结果页中返回
[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(代码)显示了以下内容:

{ _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/任何文本,制作一个图像标记,这样您的状态就会很好。

谢谢,但我不知道怎么做。插件中没有获取图像url的选项。@Paul我看不出您建议的代码将图像放置在html id=“qr”的位置。我无法想象改变管道解决方案的方法。如果我用src=设置了一个图像标记,那么抓取图像应该是什么?我的代码实际上与Morteza的相同。我的示例路由器公开的url是/qr/:text。如果您将图像src设置为该URL,服务器将以png格式发送QR图像字节,浏览器将呈现它。这是真的。但二维码不会单独出现在屏幕上吗?这对于演示来说已经足够了,但是如果屏幕上也显示了上下文信息,则需要使用id选择器指定QR码的位置。我看不出如何对结果进行编码。你有一个可以分享的句柄吗?它会出现在你分配给它的img标签中。您不需要使用选择器来放置它。只要把img标记放在你想要的地方,然后设置src。也许我不明白你的问题?