0
function media(req,res){
  console.log(req.query.image);
  var collectionName = 'imageTable';

      var selector = MongoHelper.idSelector(req.query.image);
      MongoHelper.findOne(selector, collectionName, function(err, image) { 
          console.log(image.picture);
          var url_parts = url.parse(image.picture);

          var options = {host: url_parts.hostname, path: url_parts.pathname};

          http.get(options).on('response', function (response) {
            var body = '';
            var i = 0;
            response.on('data', function (chunk) {
                i++;
                body += chunk;
                console.log('BODY Part: ' + i);
            });
            response.on('end', function () {

            console.log('Finished');
            res.writeHead(200,{'Content-Type':'image/JPEG'});
            res.write(body);
            res.end(); 
        });
        });
      });
}

我正在从不同的服务器获取图像。我有那个图片的网址。我正在写回复。但是这里的响应图像已损坏。关于如何编写 jpeg 图像作为响应的任何想法?

4

1 回答 1

0
function media(req,res){
  console.log(req.query.image);
  var collectionName = 'facebook';

      var selector = MongoHelper.idSelector(req.query.image);
      MongoHelper.findOne(selector, collectionName, function(err, image) {

          var url_parts = url.parse(image.picture);
          var options = {host: url_parts.hostname, path: url_parts.pathname};

          http.get(options).on('response', function (response) {
            res.writeHead(200,{'Content-Type':'image/JPEG'});
            response.on('data', function (chunk) {
                res.write(chunk);
            });
            response.on('end', function () {
            res.end(); 
        });
        });
      });
}

在这里,我得到了解决方案。而不是在最后写入整个数据。每次获得并在到达文件末尾时结束响应时写入它。但是,如果有人有更好的想法,可以在这里写。

于 2013-02-08T11:54:29.173 回答