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

我正在尝试在底层数据模型更改时重新加载浏览器页面:

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); }); 

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

编辑 :这是我的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> 

重新加载html页面:

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

此外,只要使用nodemon而不是nodejs来运行服务器,就要重新启动服务器。

要安装nodemon:

 npm install -g nodemon 

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

 nodemon apps.js 

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

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

如果你想刷新一个页面,在用户发送一个改变的请求之后,只需redirect到referer。

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