Node.js 无法连接错误-Linux服务器上的Node Express应用程序
尝试连接到Node Express应用程序时,我在浏览器中收到“无法连接”错误。At(我的服务器ip地址)1.1.1.1:5000。该应用程序在我的开发环境中运行良好,但在AWS EC2 Linux服务器上无法运行Node.js 无法连接错误-Linux服务器上的Node Express应用程序,node.js,linux,express,Node.js,Linux,Express,尝试连接到Node Express应用程序时,我在浏览器中收到“无法连接”错误。At(我的服务器ip地址)1.1.1.1:5000。该应用程序在我的开发环境中运行良好,但在AWS EC2 Linux服务器上无法运行 Node Express应用程序可在我的计算机上的dev中运行 端口5000允许传入TCP。我用一个较小的应用程序()测试并确认了这一点 我确认我的Node Express应用程序正在运行。(我使用的是pm2) PM2一直在14秒左右重新启动我的Node Express应用程序 我
- Node Express应用程序可在我的计算机上的dev中运行
- 端口5000允许传入TCP。我用一个较小的应用程序()测试并确认了这一点
- 我确认我的Node Express应用程序正在运行。(我使用的是pm2)
- PM2一直在14秒左右重新启动我的Node Express应用程序
- 我试图从我的机器上卷曲到端口5000,我收到一个连接被拒绝错误
curl:(7)连接到1.1.1.1端口5000失败:连接被拒绝
- 我没有使用
启动应用程序,而是使用pm2 start app.js
启动应用程序,并且该应用程序成功托管在端口5000李>npm start
- 我可以转到1.1.1.1:5000并返回
API正在运行
- 我使用js
api在127.0.0.1:5000处调用后端,并收到一个fetch
(*注意:我的api与我的nginx/react应用程序位于同一服务器上)`跨源请求被阻止:同源策略不允许在http://127.0.0.1:5000/pickTicket/21780482. (原因:CORS请求未成功)。 2. TypeError:NetworkError尝试获取资源时出错。
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var cors = require('cors');
var compression = require('compression');
var fetch = require('node-fetch');
var pickTicketRouter = require('./routes/pickTicket');
var kdlRouter = require('./routes/kdl')
console.log('Creating API')
var app = express();
app.use(cors());
app.options('*', cors());
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(compression());
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', (req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('API is running\n');
});
app.use('/pickTicket', pickTicketRouter);
app.use('/kdl', kdlRouter)
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
/bin/www
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('api:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '5000');
console.log('Listening on port: ', port);
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
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;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
package.json
{
"name": "api",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www"
},
"dependencies": {
"compression": "^1.7.4",
"cookie-parser": "~1.4.4",
"cors": "^2.8.5",
"debug": "~2.6.9",
"express": "~4.16.1",
"forever": "^1.0.0",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"morgan": "~1.9.1",
"mssql": "^5.1.0",
"node-fetch": "^2.6.0",
"sequelize": "^5.11.0",
"tedious": "^6.2.0"
},
"devDependencies": {
"nodemon": "^1.19.1"
}
}
我希望看到api的响应,但是却出现了CORS错误。我有一些关于不同环境的问题。您的开发环境是否托管在AWS中?如果没有,我会查看AWS安全组,以确保您的应用程序具有正确的TCP协议 另外,您是将此EC2部署到默认VPC中还是创建了自己的VPC?
如果您创建了VPC,可能是路由问题或网络级问题。我在app.js上调用pm2 start,而不是bin/www您实例的IP是1.1.1.1?这是怎么发生的?@MilanVelebit这是一个例子错误被修复了错误万岁检查文档,你可以做
DEBUG=\“app:\”
只显示你的应用程序错误/调试,*:是所有应该显示express的toonp的,很高兴它有帮助。旁注:如果使用pm2,不要认为你需要“^1.0.0”“永远”:。另外,别忘了你可以pm2 monit
看看为什么会崩溃,尽管不要让它继续运行日志没有尾随,并且会随着时间的推移填满锤子内存,它使用的是非常确定的内存泄漏,比如Buggery你是什么意思?我也有类似的错误。