我有一个在openshift上托管的node / socket.io聊天应用程序,如果我进入服务器并执行“node main.js”(其中main.js是启动聊天的服务器脚本),它会正确启动,我无法通过网络界面启动服务器上的应用程序,它将自动继续;如果我只是通过ssh启动应用程序,它会在我退出终端后立即停止工作。
通过网络界面启动应用时出现此错误:
Starting Node.js application...
Application is already stopped.
Warning! Could not start Node.js application!
Failed to execute: 'control restart' for /var/lib/openshift/57003fbe7628e1491d00011e/nodejs
如果它是相关的,我的package.json文件是
{
"name": "rainychat",
"version": "1.0.0",
"description": "rainychat, my chat app",
"main": "main.js",
"dependencies": {
"express": "^4.13.4",
"socket.io": "^1.4.5",
"validator": "^5.1.0"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "JG",
"license": "ISC"
}
在这里你可以通过ftp查看应用程序的文件:
我无法解码该错误的含义......
我的main.js代码
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function (req, res) {
res.sendFile(__dirname + '/chat.html'); // /home/redadmin/public_html/rainychat.com
console.log('enviado');
});
app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1');
http.listen(app.get('port'), app.get('ip'), function () {
console.log('Listening on port ' + app.get('port'));
});
//... More code
答案 0 :(得分:0)
如果您要创建新的Node项目,请从npm init
开始创建package.json
文件。您可以添加--auto
选项以提供安全默认值。
请记住,JSON文件必须是有效的JSON,因此请使用jsonlint
或an online validator等工具对其进行测试。
您的项目所具有的任何依赖项都应该在包文件中拼写出来。这是通过npm install express --save
。