2016-04-09 13 views
0

これは初めてのnode.jsです。jsonデータをnode.jsサーバーに正常に送信できましたが、jsonデータを関数に渡す方法がわかりませんサーバーの内部にあり、それを変更します。アプリケーションの意図は、node.jsがどのように動作するかを示す簡単なタイマーです。もし誰かが私にこれを助けてくれたらそれは大いに感謝されます。Node.js Ajax呼び出しJSONデータの変更

アップデート、コンソールで動作するようにコードを取得できました。タイマーは現在カウントされていますが、htmlページに書き戻されていません。以下は

それは私がIDに書き込みをしようとしていた非常に単純なミスだったが、それはクラスだった

function incrementTimer(time) { 
 
    
 
    if (time.second != 60) { 
 
     time.second +=1; 
 
    } else { 
 
     time.second = 0; 
 
     if (time.minute != 60) { 
 
      time.minute +=1; 
 
     } else { 
 
      time.minute = 0; 
 
      time.hour +=1; 
 
     } 
 
    } 
 
    return time; 
 
} 
 

 
var port = 8080; 
 
var http = require("http"); 
 
var server = http.createServer(); 
 
server.on('request', request); 
 
server.listen(port); 
 
function request(request, response) { 
 
    console.log('Request Recieved'); 
 
    var store = ""; 
 

 
    request.on('data', function(data) 
 
    { 
 
     store += data; 
 
    }); 
 
    store = incrementTimer(store); 
 
    request.on('end', function() 
 
    { console.log(store); 
 
     var storeObj = JSON.parse(store); 
 
     incrementTimer(storeObj); 
 
     response.setHeader("Content-Type", "text/json"); 
 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
 
     response.end(JSON.stringify(storeObj) 
 
    }); 
 
} 
 
console.log('Server Started');
<html> 
 
    <head> 
 
     <title>Node.js Demo</title> 
 
    </head> 
 
    <body> 
 
     <h1>Demo of Node.JS</h1> 
 
     <div id="timer"></div> 
 
     <button onclick="startTimer(0,0,0)">Start Timer</button> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 
     <script> 
 
      function startTimer(s,m,h) {    
 
       $.ajax({ 
 
        type: "POST", 
 
        url: "http://localhost:8080", 
 
        crossDomain: true, 
 
        dataType: "json", 
 
        data:JSON.stringify({second: s, minute: m, hour: h}), 
 
        success: function (data) { 
 
         $('#timer').text(data.hour + ":" + data.minute + ":" + data.second); 
 
         setTimeout(function(){ startTimer(data.second,data.minute,data.hour); }, 1000); 
 
        }, 
 
        error: function (xhr, ajaxOptions, thrownError) { 
 
         alert(xhr.status); 
 
         alert(thrownError); 
 
        } 
 
       }); 
 
      } 
 
     </script> 
 
    </body> 
 
</html>

+0

成功メッセージで再帰が発生する可能性はありますか?成功メッセージが終了するまでDOMにも書き込みは行われませんか? –

答えて

0

、私のコードです。

関連する問題