javascript - 如何修改我在 node.js 中提供的页面

标签 javascript angularjs node.js express highcharts

好的,我有我的 server.js

var express     = require("express"),
    app         = express(),
    bodyParser  = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(express.static(__dirname + '/'));

app.post('/message', function(req, res) {
  var jsonData = req.body;
  if (jsonData.hasOwnProperty('phone1')) {
      console.log("Phone 1 is connected to", jsonData.phone1.connection,
                  "and has a downlink speed of", jsonData.phone1.dl, "Mbps");
  } else 
  if (jsonData.hasOwnProperty('phone2')) {
      console.log("Phone 2 is connected to", jsonData.phone2.connection,
                  "and has a downlink speed of", jsonData.phone2.dl, "Mbps");
  }
});

var port = 1337;
app.listen(port);
console.log("Running at Port " + port);

正如你所看到的,当服务器收到/message 上发布的内容时,我想做一些事情。我可以 console.log 内容是的,但我想更改此服务器所服务的网页上的内容。 POST 请求来自另一台服务器。该服务器仅呈现它们。

如何在不更新页面的情况下做到这一点?

我还在客户端使用 AngularJS,因此客户端可以通过任何方式获取 JSON 数据。

我希望在我的 Highcharts 仪表和图表中呈现数据,但页面元素上的简单文本更新(例如 <p id="example"> )就可以很好地回答这个问题。

我知道我可以将 jquery 获取到 Node ,但我仍然缺少窗口元素来操作所呈现的数据。 NW.js可能正是我想要的,虽然我还没有尝试过,但我怀疑这个问题可能有另一种解决方案。

最佳答案

如果您想将新内容推送到客户端(与客户端从服务器请求数据的流程相反),WebSockets 是一个选项(有关公共(public)库,请参阅 http://socket.io/)。

或者,您可以在客户端设置长轮询。这是使用 JavaScript 使用 setInterval 或类似方法定期“轮询”服务器以获取信息。

关于javascript - 如何修改我在 node.js 中提供的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31653481/

相关文章:

javascript - Angular 可以在两个输入字段之间进行双向数据绑定(bind)吗?

javascript - 重定向到 ng-click 上的页面

javascript - 如何使用javascript多次访问一个页面?

javascript - 从 Backbone collection add 更新项目 View

javascript - 带有自定义过滤器菜单的 Kendo Grid 不起作用

javascript - *ngFor 在 Angular 中的不同 div 上

unit-testing - 如何模拟在 module.run Angular 应用程序中执行的 http 调用?

javascript - 错误 : bcrypt_lib. Node 不是有效的 Win32 应用程序

node.js - node express res.redirect 没有哈希

node.js - 独立安装 MongoDB 或通过 npm 安装 MongoDB 有什么区别?