首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs -如何在视图中显示qr-image结果

Nodejs -如何在视图中显示qr-image结果
EN

Stack Overflow用户
提问于 2014-12-16 02:33:40
回答 1查看 9.5K关注 0票数 5

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

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

代码语言:javascript
复制
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]

代码语言:javascript
复制
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(代码)也显示了这一点:

代码语言:javascript
复制
{ _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] }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-16 02:36:38

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

相反,您应该在模板中有一个指向响应图像的URL的图像标记。

//根据注释进行编辑

代码语言:javascript
复制
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模板中,创建一个图像标记,并将源设置为/qr/whatever text,这样您就应该状态良好了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27490742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档