2016-04-03 38 views
0

時,我有一個節點/ socket.io聊天託管在openshift應用程序,如果我ssh到服務器,並做「節點main.js」(其中main.js是服務器,而它是否正確啓動腳本啓動聊天),我無法通過Web界面在服務器上啓動應用程序,它會自動繼續;如果我只是通過ssh啓動應用程序,只要我退出終端,它就會停止工作。Openshift節點的應用程序錯誤重啓

我通過Web管理界面啓動應用程序時出現此錯誤:

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 
+1

請將錯誤以純文本的形式發佈在您的問題的正文中。這些屏幕截圖高度分散注意力,並且不會增加您的問題的清晰度。 – tadman

+0

你可以像['pm2'](https://github.com/Unitech/pm2)一樣使用Node模塊來啓動並保存你的進程嗎?這是一個更好的方式來做到這一點。 – tadman

+0

@tadman呃,當然,將錯誤發佈在圖片的正文中。但我不知道如何使用pm2,我寧願不要添加模塊而不是發現錯誤,這可能非常簡單 –

回答

0

如果您要創建一個新的節點項目,開始npm init創建package.json文件。您可以添加--auto選項以確保其安全的默認值。

請記住,JSON文件必須是有效的JSON,因此請使用jsonlintan online validator之類的工具對其進行測試。

您的項目所具有的任何依賴關係都應該在軟件包文件中詳細說明。這是自動完成的,如npm install express --save

+0

我修改了我的package.json,現在錯誤發生了變化。我編輯了我的帖子 –

+0

好像你現在遇到了另一個問題。 – tadman

相關問題