通过节点将数据发送到前端应用程序?

时间:2014-12-01 16:59:31

标签: angularjs node.js express

我有一个节点应用程序在/public和一个rest api中托管一个自包含的前端应用程序。前端应用程序仅通过REST与后端进行通信,但现在我需要发送一些关于初始应用程序负载的基本配置信息。

我不想在页面加载时发出ajax请求,而是在请求/index.html时发送所需的配置信息,因为应用程序必须运行。

设置一些基本配置的最简单方法是什么?

有没有办法可以通过节点提供一些脚本,然后从服务器参数化它?

喜欢的东西 /scripts/config.js

angular.constant('value1', '#{some parameterized server value}'); 

我正在使用快递。

2 个答案:

答案 0 :(得分:2)

您只需添加提供配置的路由即可。 像。的东西。

app.get('/scripts/config.js', function(req, res) {
  var content = 'angular.module(\'config\', [])\n';
  content += '  .constant(\'value1\', ' + someValue + ')';
  res.set('Content-Type', 'text/javascript');
  return res.send(content);
}

答案 1 :(得分:1)

在不发出Ajax请求的情况下执行此操作的唯一方法是在index.html中包含config.json文件您可以让节点读取/写入此文件的配置属性。

Angular中的执行顺序是:

  1. app.config()
  2. app.run()
  3. 编译指令函数
  4. app.controller
  5. 指示链接
  6. 您可以将您的kickstarting逻辑放在app.config()app.run()

    我相信,最佳做法是将模块中的配置逻辑分开,并使用$ http动态获取属性。