尝试使用 JavaScript 与 NodeJS 后端连接我的 HTML 时,我的网页不断刷新

问题描述 投票:0回答:1

我试图跟踪我网站中的访问者和页面浏览量,这只是在我的网页中显示的一个简单功能,但在启动我的后端服务器后页面会不断刷新,从而增加了我的页面浏览量。

HTML代码:

<h2>Page Views: <span id="pageviews-count"></span></h2>
<h2>Visits: <span id="visits-count"></span></h2>

HTML 脚本:

const pageviewsCount = document.getElementById('pageviews-count');
const visitsCounts = document.getElementById('visits-count');

if (sessionStorage.getItem('visit') === null) {
    updateCounter('type=visit-pageview');
}
else {
    updateCounter('type=pageview');
}

function updateCounter(type) {
    fetch('http://localhost:5000/counter?' + type)
        .then(res => res.json())
        .then(data => {
            pageviewsCount.textContent = data.pageviews;
            visitsCounts.textContent = data.visits;
        })
}

counter.controller.js:

const fs = require('fs');

async function visitCounter(req, res, next) {
    if (req.url === '/favicon.ico') {
        res.end();
    }

    const json = fs.readFileSync('./logs/count.json', 'utf-8');
    const obj = JSON.parse(json);

    obj.pageviews = obj.pageviews + 1;

    if (req.query.type === 'visit-pageview') {
        obj.visits = obj.visits + 1;
    }

    const newJson = JSON.stringify(obj);
    fs.writeFileSync('./logs/count.json', newJson);

    res.send(newJson);

}

module.exports = visitCounter

counter.routes.js:

const express = require('express');
const counter = require('../controllers/counter.controller');

const router = express.Router();

router.route('/')
    .get(counter);

module.exports = router;

count.json:

{"pageviews":369,"visits":8}

最后,app.js:

const express = require("express");
const cors = require("cors");

const app = express();
const port = 5000;

app.use(express.json());
app.use(cors());
app.use('/counter', require('./routes/counter.routes'));
app.listen(port, () => {
    console.log(`http://localhost:${port}`);
});
javascript html node.js server counter
1个回答
0
投票

这看起来很晦涩,但我只是在 HTML JavaScript 中将 URL 从 http://localhost:5000 更改为 http://127.0.0.1:5000,现在我的页面可以正常工作了。

我不知道原因,但我之前也遇到过这个问题,在 localhost 和 127.0.0.1 之间进行更改似乎解决了根本问题。如果有人可以解释这个方法,请这样做,因为它可能会帮助很多人理解何时使用 localhost 和 127.0.0.1。

© www.soinside.com 2019 - 2024. All rights reserved.