使用Express和EJS在Node.js中重新加载页面 [英] Reload page in Node.js using Express and EJS
问题描述
我正在尝试在基础数据模型更改时重新加载浏览器页面:
I'm trying to reload the browser page when the underlying data model changes:
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);
...以及稍后请求数据模型更改时:
...and later when requests data model changes:
request.get('localhost:3000/', function(error, response, body) {
console.log(body);
});
但我的浏览器页面不会刷新,除非我用鼠标手动点击刷新按钮。我缺少什么?
but my browser page doesn't refresh unless I manually tap the refresh button with my mouse. What am I missing?
编辑:这是我的 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页面:
To reload the html page:
<script>
location.reload(true/false);
</script>
此外,您希望在进行更改时重新启动服务器,使用nodemon而不是nodejs来运行服务器。
Also, you want to restart the server whenever a change is made use nodemon instead of nodejs to run your server.
安装nodemon:
npm install -g nodemon
运行服务器(app.js是主服务器文件)
To run the server(app.js is the main server file)
nodemon apps.js
Nodemon看起来进行更改并在找到服务器时重新启动服务器。
Nodemon looks for the changes and restarts the server whenever found.
这篇关于使用Express和EJS在Node.js中重新加载页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!