2013-10-08 11 views
6

मैं इस लिंक hereNode.js तैनाती

मैं इस कोड

var http = require('http'); 

var server = http.createServer(function(req, res) { 
    res.writeHead(200); 
    res.end('Hello Http'); 
}); 
server.listen(3000); 

को समझते हैं और वहाँ कोई मुद्दा यह स्थानीय स्तर पर चल रहा है के रूप में OpenShift करने के लिए एक Node.js आवेदन को तैनात करने की कोशिश कर रहा था

$ node server.js // saved as server.js 

हालांकि, जब मैं इस एप्लिकेशन को openshift में करता हूं तो यह कैसे काम करता है? यह बहुत आसान कोड है। मेरे पास कुछ डाउनलोड कोड है जो एक चैट एप्लिकेशन है और क्लाइंट-सर्वर को कुछ पोर्ट पर सुनने के लिए कॉन्फ़िगर करने की आवश्यकता है (मैं अपने लोकहोस्ट में पोर्ट नंबर 3000 का उपयोग कर रहा था)।

यह स्थानीयहोस्ट में बंदरगाह संख्या 3000 पर काम करता है लेकिन मैं इसे ओपनशेफ्ट में कैसे काम कर सकता हूं?

उत्तर

9

आपको पोर्ट process.env.OPENSHIFT_NODEJS_PORT पर सुनने की आवश्यकता है। तो कुछ इस तरह काम करना चाहिए:

server.listen(process.env.OPENSHIFT_NODEJS_PORT || 3000); 

देखें यहाँ उदाहरण के लिए: Error: listen EACCES on Openshift app

+0

हाय Nitzan, मैं इस कोड की कोशिश की लेकिन काम करने के लिए प्रतीत नहीं होता। अब यह कहता है "socket.io.js नहीं मिला"। मैंने इसके बारे में गुमराह किया और कुछ अलग कोडों की कोशिश की लेकिन कुछ भी काम नहीं लगता है। सबकुछ स्थानीय रूप से ठीक काम करता है लेकिन जब मैं एक ही कोड को openshift में अपलोड करता हूं, तो यह काम नहीं करता है। मुख्य रूप से, यह socket.io.js फ़ाइल नहीं मिलती है। मुझे नहीं पता कि इसे कैसे हल किया जाए। – jeewan

+0

आपकी मूल समस्या हल हो गई है, अब आप एक और समस्या का सामना कर रहे हैं। मेरा सुझाव है कि आप इस उत्तर को स्वीकार करते हैं, और "socket.io.js" के बारे में एक नया प्रश्न नहीं खोलते हैं। यह एक अलग समस्या है, और भविष्य में लोग जो इसकी तलाश कर सकते हैं, इस प्रश्न के शीर्षक के अनुसार खोज नहीं करेंगे। यह अन्य लोगों को जवाब देने का मौका भी देगा। उस नए प्रश्न में, आपको निश्चित रूप से निर्देशिका संरचना और प्रासंगिक लॉग शामिल करना चाहिए। समस्या को बेहतर तरीके से वर्णित करें: "यह" कौन है ("अब यह कहता है ...") - ग्राहक? सर्वर? कुछ और? –

+0

हाय निट्टन, इसके लिए खेद है। मैं आज सुबह जल्दी ही आपके उत्तर का जवाब देने के लिए जल्दी था और पूरी तरह से अपना जवाब स्वीकार करना भूल गया। मैं आपका जवाब स्वीकार कर रहा हूं, आपको बहुत धन्यवाद। मैंने बहुत कुछ खोजा और ओपनशेफ्ट सर्वर में इसे ठीक करने की कोशिश की लेकिन इसे हल नहीं किया जा सका। मैं आज बाद में और अधिक शोध करूंगा। इसके बारे में क्षमा करें, मैं आपका जवाब स्वीकार कर रहा हूं और इसके लिए आपको बहुत धन्यवाद। – jeewan

2

अरे socket.io साथ मुद्दा है आपको लगता है कि NPM पैकेज स्थापित स्थानीय लेकिन OpenShift में नहीं है (निर्भरता नहीं मिलता धकेल दिया)। इसके लिए आप एसएसएच के माध्यम से लॉगिन कर सकते हैं ("अपने आवेदन में लॉग इन करना चाहते हैं" के लिए ओपनफिफ़्ट कंट्रोल पैनल में दाएं मेनू में देखें, instructions का पालन करें और उपलब्ध एसएसएच कनेक्शन का उपयोग करें) फिर टर्मिनल ओ पुटी के साथ लॉगिन करें, और यहां जाएं:

cd app-root/repo 

या

cd $OPENSHIFT_REPO_DIR 

और फिर

npm install socket.io 

मैं मुसीबत के बिना नेवला और अन्य निर्भरता स्थापित करने के लिए उपयोग किया है कि। इसके अलावा, आप साइट को चलाने के लिए कमांड लाइन से

node server.js 

उपयोग कर सकते हैं;)

+1

या आप पैकेज को संपादित कर सकते हैं। Json – mcbjam

+1

openshift से कोड को चेक करने के बाद बस 'npm इंस्टॉल करें' और इसे स्थानीय रूप से आवश्यक पैकेज (जिन्हें पैकेज.जेसन में परिभाषित किया गया है) प्राप्त होगा – Tapirboy