2016-06-23 13 views
0

jsonを受け入れるポート7788にWeb APIを作成し、そのjsonをWebページをレンダリングする私のAPIに渡す必要があります。ポート7788のページとWeb APIはその要素を返すべきです。このためPhantomJSエラー:削除されたQObjectのメンバー '書き込み'にアクセスできない

cannot access member `write' of deleted QObject:

::のは、私は、7788上で自分のサーバーにエラーREPONSEを送信しようとした瞬間までうまく行くすべてpage.openが呼び出された後firstResponse.write(imgsrc);

はserver.listen応答を持つ要素を返すことが可能です?

var server = require('webserver').create(); 
    var port = require('system').env.PORT || 7788; 

    server.listen(port, {'keepAlive': false}, function (request, response) { 

     console.log("request method: ", request.method); // request.method POST or GET  
      var imgsrc; 
      var firstResponse = response; 

     if (request.method == 'POST') { 

      var page = require('webpage').create(); 
      var settings = { 
       operation: "POST", 
       encoding: "utf8", 
       headers: { 
       "Content-Type": "application/json" 
       }, 
       data: JSON.stringify(request.post) 
      }; 
      var url = "http://127.0.0.1:5000/mapapp"; 

      page.onConsoleMessage = function(msg, lineNum, sourceId) { 
       console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")'); 
      }; 

      page.open(url, settings, function (status) { 


       setTimeout(function() { 
        page.evaluate(function() { 

         imgsrc = document.getElementById("exportedImg").src; 
        }); 

       }, 5000); 
      }); 
      page.close(); 
      setTimeout(function() { 
        firstResponse.write(imgsrc); 

       }, 7000); 
     firstResponse.close(); 

     } 


    }); 

答えて

1

firstResponse.close()を呼び出します。 beforeはfirstResponse.write(imgsrc)と呼ばれます。あなたのタイムアウト後。 firstResponse.close()をsetTimeoutハンドラに移動:

page.close(); 
setTimeout(function() { 
      firstResponse.write(imgsrc); 
      firstResponse.close(); 
}, 7000); 
関連する問題