2014-12-15 1 views
2

Nodejs 용 qr-image 플러그인을 사용하여 QR 코드를 생성하고 꽤 잘 작동합니다.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가 손상됩니다. 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] } 

답변

6

; 그것은 효과가 없을 것입니다.

대신 이미지에 응답하는 URL을 가리키는 이미지 태그가 템플릿에 있어야합니다. 코멘트

당신의 HTML 템플릿에서 다음
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); 
} 

에 따라

// 편집, /qr/whatever text로 설정 SRC와 이미지 태그를 확인하고 당신은 좋은 상태에 있어야합니다.

+0

감사합니다. 그러나 '방법'을 모르겠습니다. 플러그인에는 이미지 URL을 가져 오는 옵션이 없습니다. –

+0

@Paul 제안 된 코드가 html id = "qr"위치에 이미지를 배치하는 것을 보지 못했습니다. 나는 파이프 솔루션을 변경하는 방법을 시각화 할 수 없습니다. src =로 이미지 태그를 설정하면 이미지를 잡아서 무엇을해야합니까? 내 코드는 사실 Morteza와 동일합니다. – Ric

+0

나의 예제 라우터가 노출하는 URL은/qr/: text입니다. 이미지 src를 해당 URL로 설정하면 서버는 QR 이미지 바이트를 png로 보내고 브라우저는이를 렌더링합니다. – Paul

관련 문제