2016-07-16 6 views
0

私はNodeを手に取って、HTMLを受け入れ、使用されたルートに応じてPDFまたは画像を返す基本的なWebサーバ設定を取得しようとしています。Node.js - イメージまたはPDFとしてHTMLをレンダリングします。ローカルで動作し、サーバ上に落ちる

以下は、ローカルマシンで実行している場合の動作です。私はApacheとNginxを使用して2つの異なるサーバーにそれをポップしました。どちらも画像やPDFを返すことができません。 PDFルートは502を返し、イメージルートは空のイメージを返します。

私は間違ったやり方をしている可能性がありますが、今は私が逃しているものについてはいくらか失いました。どんな指針も大変ありがとうございます。

var url = require('url'); 
var http = require('http'); 
var wkhtmltox = require('wkhtmltox'); 
var converter = new wkhtmltox(); 

// Locations of the binaries can be specified, but this is 
// only needed if the programs are located outside your PATH 
// converter.wkhtmltopdf = '/opt/local/bin/wkhtmltopdf'; 
// converter.wkhtmltoimage = '/opt/local/bin/wkhtmltoimage'; 

http.createServer(function (req, res) { 
    console.log(url.parse(req.url, true).query); 
    if (req.url == "/pdf") { 
    res.writeHead(200, {'Content-Type': 'application/pdf'}); 
    converter.pdf(req, url.parse(req.url, true).query).pipe(res); 
    } else if (req.url == "/image") { 
    res.writeHead(200, {'Content-Type': 'image/png'}); 
    converter.image(req, { format: "png" , quality: 75 }).pipe(res); 
    } else { 
    res.end('Control is an illusion.'); 
    } 
}).listen(1337, '127.0.0.1'); 

console.log('Server running at http://127.0.0.1:1337/'); 

これは、PDFルートのサーバーで記録されるエラーです。イメージルートにエラーは記録されません。

Error: This socket has been ended by the other party 
    at Socket.writeAfterFIN [as write] (net.js:285:12) 
    at performWork (/var/www/app_name/node_modules/wkhtmltox/lib/wkhtmltox.js:98:22) 
    at wkhtmltox.pdf (/var/www/app_name/node_modules/wkhtmltox/lib/wkhtmltox.js:113:16) 
    at Server.<anonymous> (/var/www/app_name/index.js:16:14) 
    at emitTwo (events.js:106:13) 
    at Server.emit (events.js:191:7) 
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:543:12) 
    at HTTPParser.parserOnHeadersComplete (_http_common.js:105:23) 

私はカールを使用してテストしていました。

curl -d @file_to_render.html -s "http://localhost:1337/pdf" -o test.pdf 
curl -d @file_to_render.html -s "http://localhost:1337/image" -o test.png 

答えて

0

はパイプにのonErrorイベントを追加してみ

関連する問題