繁体   English   中英

按钮更新node.js和HTML

[英]Button update node.js and HTML

我试图做一个基本的计数器,可以在浏览器/计算机之间工作。 (我是新来的)。 该按钮仅在大约1/12的时间内起作用。 如何使其更加一致?

谢谢!

我的服务器端node.js看起来像:

var express = require('express');
var app = express();
var hits = 0;

app.get('/main.html', function (req, res, next) {
    console.log('bye');
    next();
});

app.get('/', function (req, res, next) {
    console.log('hello');
    next();
});

app.get('/add', function (req, res) {
    console.log('added hits');
    hits++;
});

app.get('/hitNum', function (req, res) {
    console.log('hits req');
    res.end(hits+'');
});

app.use(express.static(__dirname + '/public'));

var server = app.listen(80);

我的HTML看起来像:

<!DOCTYPE html>
<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>     
        <script>
            var add = function () {
                $.get('add');
            }

            window.setInterval(function (){
                $.get('hitNum').done(function (data){
                    document.getElementById('hits').innerText = data;
                }); 
            }, 500);

        </script>
    </head>
    <body>
        <button onclick='add()' >Hi</button>
        <p id='hits'></p>   
    </body>
</html>

我将从更改/hitNum控制器开始:最好不显式设置状态和主体(分别通过status()send() ,而不是仅调用end() )。 这是我的写法:

app.get('/hitNum', function (req, res) {
    console.log('hits req');
    res.status(200).send('' + hits);
});

200状态指示“成功”。

还有一件事:

您的/add控制器不会发回任何响应。 这意味着您的JS将不知道是否/何时完成/add请求:

app.get('/add', function (req, res) {
  console.log('added hits');
  hits++;
  res.status(200).end();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM