2016-06-12 31 views
-1

我有一个nodejs服务器代码,如下所示。我试图在EC2的两个单独实例上运行它,并且有趣:nodejs在8000上正常工作,但不在3000上

服务器1:工作完全正常。

服务器2:nodejs服务器不开始侦听。我输入命令“nodejs myfile.js”或“node myfile.js”并按回车键,没有任何反应,我得到命令提示符。

我很困惑。代码如下所示,主文件:

var express = require('express'), 
    bodyParser = require('body-parser'), 
    oauthserver = require('oauth2-server'); 
var controllernew = require('./controllers/controllernew'); 


var app = express(); 

app.use(bodyParser.json({limit: '50mb'})); 
app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); 

app.get('/index.html', controllernew.index); 

app.oauth = oauthserver({ 
    model: require('./models/modeloauth'), 
    grants: ['password'], 
    debug: true, 
    accessTokenLifetime: 31536000 
}); 

app.get('/userOTP/:userid/username/:username', controllernew.getUserOTP); 

app.all('/oauth/token', app.oauth.grant()); 
app.all('*', app.oauth.authorise()); 

app.use(app.oauth.errorHandler()); 

routes = require("./routes/items")(); 
app.use(routes); 
var server = app.listen(3000, function(){ 
    console.log('server started at ' + server.address().port); 
}); 

在控制器的index.html要求小功能索引功能:

index: function(req, res, next){ 
    console.log("health check"); 
    res.write("All ok"); 
    res.end(); 
} 

什么我的第二个服务器上丢失的,为什么不是代码运行。有没有办法检查节点是否安装正确?

+1

是一些其他进程正在使用的端口?既然你在EC2中运行它,你是否已经解开了端口3000的防火墙? – vijayst

+0

'lsof -iTCP:3000 -sTCP:LISTEN' - 在终端执行以检查端口是否在使用 –

+0

它看起来像该端口已被使用。 –

回答

0

第一个问题解决了,从我的最后一个相当愚蠢的疏忽导致这一点。发布解决方案,以防万一,这有助于其他人。

服务器的我的EC2实例只接受端口8080上的入站通信。我打开端口3000和端口80,解决了我的问题。

但是,我的服务器的第二个实例的问题仍然是打开的。

相关问题