NodeJS 在 Azure Deploy MEAN-stack Web App 中不起作用



刚刚在Azure中部署了我的MEAN堆栈web应用程序,除了我的NodeJS/Express服务器之外,其他一切都正常工作。我的angular正在发送Http请求,但没有一个到达我的名为server.js的NodeJS服务器。这个文件也没有处理请求。每个请求都返回404未找到。只有当我在本地运行nodejs时,它才有效。

当一切都在本地运行时,这个web应用程序运行得很好,但现在它似乎找不到我部署的NodeJS。

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

作为运行在Azure Web Apps Service上的Node.js应用程序,托管在IISNode上,IISNode提供了一个named pipe来接收传入请求,而不是TCP端口。在平台层,Azure Web App只向公众公开80443端口。

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

/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.jsapp.use(express.static(path.join(__dirname, 'public')));

浏览网址:http://<your_web_app_name>.azurewebsites.net/angular.html

相关内容

  • 没有找到相关文章

最新更新