2015-02-24 34 views
0

我正在嘗試使用Openshift的免費服務設置我的第一個Node.js + express web應用程序。Openshift總是給Node.js提供503錯誤應用程序

我在我的電腦上安裝了node + npm和openshift工具,並試圖運行我的應用程序。在我的本地機器上一切正常,但是當我將我的項目推到Openshift站點後,它總是給出'503 Service Unavailable'錯誤。我試過rhc app restart -a firstapp,但它沒有解決問題。我也檢查了package.json,它是正確的。

這裏是我的代碼:

var express = require('express'); 
var app = express(); 
var fs  = require('fs'); 
var parser = require('body-parser'); 

//Setup ip adress and port 
var ipaddress ; 

function initIPAdress() { 
    var adr = process.env.OPENSHIFT_NODEJS_IP; 
    if (typeof adr === "undefined") { 
      // Log errors on OpenShift but continue w/ 127.0.0.1 - this 
      // allows us to run/test the app locally. 
      console.warn('No OPENSHIFT_NODEJS_IP var, using localhost'); 
      adr = 'localhost'; 
    } 

    ipaddress = adr; 
} 

var port  = process.env.OPENSHIFT_NODEJS_PORT || 8080; 


app.get('/', function (req, res) { 
    res.send('Hello World!') 
}) 

app.get('/admin', function (req, res) { 
     res.setHeader('Content-Type', 'text/html'); 
     res.send(fs.readFileSync('./index_admin.html')); 
}) 

app.listen(port, ipaddress, function() { 
     initIPAdress();//Call setup ip adress 
     console.log('%s: Node server started on %s:%d ...', 
         Date(Date.now()), ipaddress, port); 
}); 

回答

1

的問題是,該IP地址設置錯誤,則app.listen方法之後。所以,我不得不改變我的代碼如下:

var express = require('express'); 
var app = express(); 
var fs  = require('fs'); 
var parser = require('body-parser'); 

//Setup ip adress and port 
var ipaddress ; 

function initIPAdress() { 
    var adr = process.env.OPENSHIFT_NODEJS_IP; 
    if (typeof adr === "undefined") { 
      // Log errors on OpenShift but continue w/ 127.0.0.1 - this 
      // allows us to run/test the app locally. 
      console.warn('No OPENSHIFT_NODEJS_IP var, using localhost'); 
      adr = 'localhost'; 
    } 

    ipaddress = adr; 
} 

var port  = process.env.OPENSHIFT_NODEJS_PORT || 8080; 


app.get('/', function (req, res) { 
    res.send('Hello World!') 
}) 

app.get('/admin', function (req, res) { 
     res.setHeader('Content-Type', 'text/html'); 
     res.send(fs.readFileSync('./index_admin.html')); 
}) 

initIPAdress(); //Setup IP adress before app.listen() 

app.listen(port, ipaddress, function() { 
     console.log('%s: Node server started on %s:%d ...', 
         Date(Date.now()), ipaddress, port); 
}); 
相關問題