Node.js Ajax调用修改JSON数据

时间:2016-04-09 02:44:05

标签: javascript json ajax node.js

这是我第一次使用node.js我已成功将json数据发送到我的node.js服务器,但我无法弄清楚如何将json数据传递到服务器内的函数并修改它。我的应用程序意图是一个简单的计时器来展示node.js的工作方式。如果有人能给我一些帮助,我将不胜感激。

更新,我能够让我的代码在控制台中工作,计时器正在计算,但它没有写回html页面。

以下是我的代码,



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>
&#13;
&#13;
&#13;

0 个答案:

没有答案