2016-06-12 56 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,解決了我的問題。

但是,我的服務器的第二個實例的問題仍然是打開的。

相關問題