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(); 
        });
        });
      });
}

別のサーバーから画像を取得しています。その画像のURLがあります。と、返事を書いています。しかし、ここで応答画像が破損します。応答で 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 に答える