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