在 Node 中重新加载页面.js使用 Express 和 EJS

Reload page in Node.js using Express and EJS

本文关键字:js 使用 Express EJS 加载 Node 新加载      更新时间:2023-09-26

当基础数据模型更改时,我正在尝试重新加载浏览器页面:

var request = require('request');
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ extended: false }));
var requests;
app.get('/', function(req, res) {
    res.render('index', {
        requests: requests
    });
});
app.listen(3000);

。稍后,当请求数据模型更改时:

request.get('localhost:3000/', function(error, response, body) {
    console.log(body);
});

但是我的浏览器页面不会刷新,除非我用鼠标手动点击刷新按钮。我错过了什么?

编辑:这是我index.ejs代码:

<!DOCTYPE html>
<html>
<ul>
    <% requests.forEach(function(match) { %>
        <form action="/acceptRequest" method="post" enctype="application/x-www-form-urlencoded">
            <input type="text" name="id" value="<%= match.id %>">
            <input type="text" name="fighter1" value="<%= match.fighter1 %>"> vs.
            <input type="text" name="fighter2" value="<%= match.fighter2 %>"> on
            <input type="text" name="fightdate" value="<%= match.date %>"> in
            <input type="text" name="rounds" value="">
            <input type="submit" value="Submit">
        </form>
        <br>
        <% }); %>
</ul>
</html>

有一个叫做HTTP Referer的东西:它是一个HTTP标头字段,用于标识链接到所请求资源的页面的地址。

如果要刷新页面,在用户发送更改某些内容的请求后,只需重定向到引用即可。

app.get('/someRequest', function(request, response) {
    // some things changed here.
    response.redirect(request.get('referer'));
});

重新加载 html 页面:

<script>
location.reload(true/false);
</script>

此外,您希望在进行更改时使用 nodemon 而不是 nodejs 来运行服务器时重新启动服务器。

要安装 nodemon:

npm install -g nodemon

运行服务器(app.js是主服务器文件)

nodemon apps.js

Nodemon 会查找更改,并在找到时重新启动服务器。