2012-11-30 11 views
11

मैं यह निर्धारित करना चाहता हूं कि मेरा जेएस कोड नोड सर्वर या क्लाइंट पर चल रहा है या नहीं, और इसे एक चर isServer = true में संग्रहीत करें यदि यह चालू हो रहा है सर्वर। मैं उसे कैसे कर सकता हूँ? क्या किसी ऐसे संपत्ति के अस्तित्व की जांच करने का कोई तरीका है जो केवल सर्वर पर उपलब्ध है और यदि यह संभव है, तो सबसे अच्छा विकल्प कौन सा है?यह जांचने के लिए कि क्या जेएस कोड नोड सर्वर पर या क्लाइंट पर चल रहा है

मदद के लिए धन्यवाद!

+3

'अगर (टाइपफ विंडो ===" अपरिभाषित ") {/ * शायद सर्वर पर * /}' – nnnnnn

उत्तर

16

आप इस का उपयोग कर सकते हैं:

function is_server() { 
    return ! (typeof window != 'undefined' && window.document); 
} 

वैश्विक window.document वस्तु के रूप में ब्राउज़र संदर्भ में ही मौजूद है।

+2

window.document आसानी से इंजेक्शन दिया जा सकता है। –

+0

संदर्भ त्रुटि: विंडो को को प्रतिलिपि पर परिभाषित नहीं किया गया है: 1: 4 REPLServer.self.eval (repl.js: 111: 21) इंटरफ़ेस पर। (repl.js: 250: 12) Interface.EventEmitter.emit पर (events.js: 88: 17) Interface._onLine पर (readline.js: 199: 10) Interface._line (readline.js पर: 517: 8) Interface._ttyWrite (readline.js: 735: 14) ReadStream.onkeypress (readline.js: 98: 10) पर ReadStream.EventEmitter.emit (events.js: 115: 20) पर emitKey (readline.js: 1057: 12) –

+0

ऐसा लगता है कि मैं सर्वर पर बिल्कुल विंडो की जांच नहीं कर सकता ... मुझे पता है कि ब्राउज़र और नोड सर्वर के बीच का अंतर विंडो बनाम वैश्विक है। –

संबंधित मुद्दे