【发布时间】:2016-06-30 08:57:21
【问题描述】:
当底层数据模型发生变化时,我正在尝试重新加载浏览器页面:
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>
【问题讨论】:
-
您在浏览器中运行的哪些代码会导致刷新。您的
request.get()请求一个页面,但不对内容做任何事情。如果您希望浏览器重新加载当前页面,您可以发出window.reload()。或者您可以使用 Ajax 获取更新的内容,然后自己将内容插入到 DOM 中。 -
@jfriend00 添加了我的 ejs 代码
-
我还是不明白您想从网页中的哪个动作触发重新加载?这是您尚未明确提出的问题的一部分。是发给
/acceptRequest的表格吗?还是某个地方的 Ajax 调用?还是别的什么? -
nodemon 模块最适合执行此类任务
标签: javascript node.js express ejs