【问题标题】:NodeJS isn't working in Azure Deployed MEAN-stack web-appNodeJS 在 Azure Deployed MEAN-stack web-app 中不起作用
【发布时间】:2016-04-14 23:57:17
【问题描述】:

刚刚在 Azure 中部署了我的 MEAN-stack Web 应用程序,除我的 NodeJS/Express 服务器外,一切正常。我的角度正在发送 Http 请求,但它们都没有到达我的 NodeJS 服务器 server.js 这个文件也不是处理请求的每个请求都返回 404 Not found。 它仅在我在本地运行 nodejs 时才有效。

当一切都在本地运行时,这个网络应用程序运行得非常好,但现在它似乎无法找到我部署的 NodeJS。

我通过VS将整个项目上传到Azure,整个项目含义,我的Angular代码,html代码,ser.js文件和web.config等。 我不知道我应该在我的 nodejs 中监听哪个端口。当我在本地运行它时,我使用http://localhost:27017 作为我的角度流量,并在我的nodeJS 上监听端口27017。但是现在它已经部署在 Azure 上,我想我不能再使用这个端口了?

【问题讨论】:

  • 您如何将 nodejs 应用程序部署到服务器? ftp,来自github,直接通过VS部署等?
  • 请编辑您的问题,提供更多详细信息,例如您如何部署它(全部在 VM 中?部分在 Azure Web 应用程序中?),您如何打开端口以侦听流量,等等。就目前而言,没有足够的细节继续下去。
  • @BotanMan 我使用 VS 部署了整个应用程序?
  • 嗯,Angular 应用和 NodeJs 服务器是不同的应用吗?我的意思是 NodeJS 服务器是否返回,例如,'index.html' 是 Angular 应用程序,或者 nodeJS 是纯粹的 restful 服务?
  • @BotanMan 我更新了我的描述是否有帮助?您认为我应该将我的节点托管在单独的 API 应用程序上吗?

标签: angularjs node.js azure web-applications mean-stack


【解决方案1】:

由于在 Azure Web 应用服务上运行的 Node.js 应用程序托管在 IISNode 上,它提供了一个 named pipe 来接收传入的请求,而不是一个 TCP 端口。而在平台层,Azure Web Apps 仅公开 80,443 端口。

您可以在angular 代码中直接将请求 url 设置为您的 Node.js 应用程序端点。以下是我基于express web app template的代码sn-ps供大家参考:

/public
 |-angluar.html:

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="http://cdn.bootcss.com/angular.js/1.4.0-rc.2/angular.min.js"></script>
    </head>
    <body ng-app="app">
          <div ng-controller="testCtrl">
              {{response}}
          </div>
    </body>
<script type="text/javascript">
    var app = angular.module('app', []);
    app
    .controller('testCtrl', function ($scope, $http) {
        $http.get('http://<your_web_ap_name>.azurewebsites.net/users').then(function (data) {
            $scope.response = data;
        })
    })
</script>
</html>

/routes
 |-user.js:

exports.list = function(req, res){
  res.send("respond with a resource");
};

server.js: app.use(express.static(path.join(__dirname, 'public')));

浏览网址:http://&lt;your_web_app_name&gt;.azurewebsites.net/angular.html

【讨论】:

  • 它不会返回任何 json。当我去 http://.azurewebsites.net/Exercise 时,我应该打印数据库中的所有练习,但遗憾的是我没有。不知道为什么会这样。我的 NodeJS 根本没有运行或部署
  • 首先,您可以直接浏览您的端点http://&lt;myapp&gt;.azurewebsites.net/Exercise 以检查您的Node.js 服务器是否正常工作。但是根据您的评论,您的 Node.js 服务器有问题。根据您的另一个问题stackoverflow.com/questions/34712509/…,目前看来mongodb连接问题是犯罪分子。
  • codegenieapi.azurewebsites.net/Exercise 老实说,我不知道问题是什么,这就是我问所有这些问题的原因:)
  • 我可以从您提供的链接中获取数据列表,例如[{"_id":"56616178e4b048264f08015e","semester":1,"week":1,"Title":"Inleiding","Description":"\r\n1)......,那么“Nodejs 无法正常工作”是什么意思?
  • 我只是直接在浏览器中打开了您的链接。我还尝试了您在 Angular 应用程序中的链接。你可以换个电脑试试,如果在其他电脑上能正常使用,你可以检查一下你的电脑和其他电脑的环境。
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 2016-03-19
  • 2016-09-19
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多