将PDF写入Nodejs中失败的浏览器

时间:2014-06-06 21:52:17

标签: node.js pdf

我试图从网址上读取PDF并将其显示给用户的浏览器(通过传入的响应'对象)。我尝试使用下面的代码并且它有时会运行,但通常会失败:

function writePdfToBrowser(url, response) {
    http.get(url, function(res) {
        logger.verbose('about to start download...');
        var chunks = [];
        res.on('data', function(chunk) {
            chunks.push(chunk);
        });
        res.on("end", function() {
            logger.verbose('downloaded');
            var buffer = new Buffer.concat(chunks);
            //write downloaded pdf to the original response
            response.write(buffer);
            //response.send(buffer);
            response.end();
        });
    }).on("error", function() {
        logger.error("error!");
    });
} 

在我尝试加载pdf的新页面中,它只会说"无法加载pdf"。

我是Node的新手,所以不确定问题出在哪里,有什么想法吗?任何人都有任何工作代码来做同样的事情吗?

感谢您的帮助!

标记

1 个答案:

答案 0 :(得分:0)

使用管道:

function pipe(url, res) {   
    var request = http.get(url, function(response) {
        res.writeHead(response.statusCode, response.headers)
        response.pipe(res); 
    });

    request.on('error', function(error){
        res.statusCode = 500;
        res.end(error.message);
    });
}
  

...请在下次提供有关失败的内容和方式的更多信息,一些日志,之前检查浏览器的响应。等等......