我正在开发一个Angular应用程序,该应用程序连接到postgresql并对其进行简单的操作。在虚拟机上,一切正常运行,但是当我开始在官方服务器上对其进行测试时,情况变得更糟。
我的Angular Frontend很好用,一切都显示出来等等,但是当我要登录时,当我按下按钮时,控制台中会出现以下错误:
zone.js:2969 OPTIONS http://192.168.30.5:3132/auth/login
net::ERR_CONNECTION_TIMED_OUT
我的前端在端口4200上工作,我从以下端口开始
ng serve --host=192.168.30.5
NodeJS服务器仅以
开头node server.js
我已经检查了netstat -nltp,它显示:
192.168.30.5:4200 0.0.0.0:* LISTEN 20597/ng serve --ho
:::3132 :::* LISTEN 20665/node-default
我尝试测试其他地址组合(使用localhost代替192.168.30.5,使用0.0.0.0代替,使用127.0.0.1等),并且没有任何效果。
我看到的一件事是,当我使用地址192.168.30.5时,错误是
ERR_CONNECTION_TIMED_OUT
但是当我使用本地主机时,错误更改为
ERR_CONNECTION_REFUSED
我希望这个应用程序可以在VM上正常工作,因此,例如当我单击登录按钮时,它将登录我而不是在控制台中显示错误。我将不胜感激。
我的server.js文件:
console.log("NodeJS Activated");
(function () {
'use strict';
const app = require('./app');
const debug = require('debug')('herman-express:server');
const http = require('http');
const port = normalizePort(process.env.PORT || '3132');
app.set('port', port);
const server = http.createServer(app);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
function normalizePort(val) {
const port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
}
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
const bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port;
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
function onListening() {
const addr = server.address();
const bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
debug('Listening on ' + bind);
}
}());