【问题标题】:Pass a variable from a node.js page to an Angular2 app将 node.js 页面中的变量传递给 Angular2 应用程序
【发布时间】:2017-07-26 12:07:54
【问题描述】:

我正在使用 Windows IIS7 托管一个 Angular2 应用程序。我上传了 Angular2 DIST 文件夹内容,并且应用程序在浏览器中启动没有问题。但是,在 Angular2 应用程序中,我需要立即知道登录的用户名。所以我使用 node.js 来完成这个。我已经在服务器上安装了 node.js 并且正在使用 iisnode。我的 index.js 页面包含以下代码。

======================================

var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');

http.createServer(function (req, res) {
  var username = req.headers['x-iisnode-logon_user'];    

  res.writeHead(200, {'Content-Type': 'text/html'});

  res.end(index);

  //res.end('username: ' + username);

}).listen(process.env.PORT);

==========================================

如果我使用 \index.js 调用我的网站,则效果很好,我可以从 req.header logon_user 数据中查看用户名(当我在两个 res.end 行上切换评论时)。 当我使用 res.end(index) 时,它也可以按预期工作。我使用 index.js 调用网站,它立即开始启动我的 Angular2 应用程序(其中 index.html 是入口点)。但是,我无法弄清楚如何将 .js 页面发现的用户名放入我的 Angular2 应用程序中,以便我可以使用它。例如,出于安全考虑,它不能附加到 URL。

【问题讨论】:

    标签: node.js angular


    【解决方案1】:
    1. 在您的 node.js 应用中安装 Express
    2. 创建将返回当前用户的 REST API api/user/
    3. 更改您的 Angular 代码以向 API 发出 http 请求并返回用户名。

    【讨论】:

    • 感谢您的回复和帮助。快递确实是要走的路。让 Express、IIS、Node.js 和 Angular2 能够很好地协同工作是相当困难的,但它现在可以正常工作了。在获得所有最终正确设置的路径后,IIS 知道何时提供 .js 页面以及何时提供静态页面,将 http 请求合并到 REST Api 效果很好。再次感谢。
    • 很高兴听到。如果有帮助,请接受我的回答。
    猜你喜欢
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2016-03-13
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多