刚刚在Azure中部署了My MEAN-stack Web应用程序,除了我的NodeJS / Express服务器外,一切正常。我的角度是发送Http请求,但它们都没有到达名为server.js
的NodeJS服务器。此文件处理请求的每个请求都返回404 Not found。
它只适用于我在本地运行nodejs。
当一切都在本地运行时,这个网络应用程序完美地被罚款但现在它似乎无法找到我部署的NodeJS。
我通过VS将整个项目上传到Azure,整个项目含义,我的Angular代码,html代码,ser.js文件和web.config等。 我不知道我应该在我的nodejs中监听哪个端口。当我在本地运行它时,我使用http://localhost:27017作为我的角度流量,并用于侦听我的nodeJS上的端口27017。但是现在它部署在Azure上我假设我不能再使用这个端口了吗?
答案 0 :(得分:0)
由于在Azure Web Apps服务上运行的Node.js应用程序托管在IISNode上,这使得named pipe
可以接收传入的请求,而不是TCP端口。在平台层,Azure Web Apps仅向公众公开80,443端口。
您可以在angular
代码中直接将请求网址设置到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.js
:
app.use(express.static(path.join(__dirname, 'public')));
浏览网址:http://<your_web_app_name>.azurewebsites.net/angular.html