Openshift 始终为 Node.js 应用程序提供 503 错误
Openshift always gives 503 error for Node.js app
我正在尝试使用 Openshift 的免费服务设置我的第一个 Node.js + 快速网络应用程序。
我在我的电脑上安装了 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);
});
问题是,在 app.listen
方法之后,IP 地址设置不正确。所以,我不得不按如下方式更改我的代码:
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);
});
我正在尝试使用 Openshift 的免费服务设置我的第一个 Node.js + 快速网络应用程序。
我在我的电脑上安装了 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);
});
问题是,在 app.listen
方法之后,IP 地址设置不正确。所以,我不得不按如下方式更改我的代码:
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);
});