我试图在基础数据模型发生变化时重新加载浏览器页面:
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>
答案 0 :(得分:2)
要重新加载html页面:
npm install -g nodemon
此外,您希望在进行更改时重新启动服务器,使用nodemon而不是nodejs来运行服务器。
安装nodemon:
nodemon apps.js
运行服务器(app.js是主服务器文件)
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "inline;filename=" + fpath);
Response.ContentType = "application/pdf";
Response.WriteFile(fpath);
Response.Flush();
Response.Clear();
Nodemon查找更改并在找到时重新启动服务器。
答案 1 :(得分:0)
有一个名为HTTP Referer
的东西:它是一个HTTP标头字段,用于标识链接到所请求资源的页面地址。
如果要刷新页面,在用户发送更改内容的请求后,只需重定向到引用者。
app.get('/someRequest', function(request, response) {
// some things changed here.
response.redirect(request.get('referer'));
});