Node.js कंसोल.लॉग () कुछ भी लॉग नहीं कर रहा है


91

पहली बार नोड.जेएस की कोशिश करना। नोड सेट अप करें, नोड एप्लिकेशन को njj.org साइट से सेट अप करें । सर्वर को ठीक शुरू कर सकता है, लेकिन console.log()वास्तव में कुछ भी लॉग नहीं कर रहा है। क्रोम, फ़ायरफ़ॉक्स और सफारी में जावास्क्रिप्ट कंसोल की कोशिश की - लॉग में कुछ भी नहीं दिखता है। इसके अलावा मेरे मैक पर कंसोल की जाँच की सिर्फ kicks के लिए, कुछ भी नहीं था। मैं क्या खो रहा हूँ?

(यहां उदाहरण कोड है जो काम करता है लेकिन कुछ भी लॉग नहीं करता है।)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

आप इस ऐप को कैसे चला रहे हैं? कैसा माहौल? यदि यह आपके स्थानीय मशीन पर कंसोल पर है, तो आपको वहां ऐप से आने वाले लॉग को देखना चाहिए। यदि आप एक होस्ट किए गए समाधान का उपयोग कर रहे हैं, तो वे आमतौर पर लॉग को वेब इंटरफ़ेस और उनके कमांड लाइन एपीआई टूल के माध्यम से देखने के लिए कोई रास्ता प्रदान करते हैं।
ट्रेफिनॉन

मैं अपनी मशीन पर इसे दोहरा नहीं सकता। यह ठीक काम करता है। तुम कौन सा संस्करण चला रहे हो?
सीन हिल

3
कंसोल.लॉग () टर्मिनल विंडो में स्ट्रिंग्स का उत्सर्जन करता है (कमांड लाइन इंटरफ़ेस जहां एप्लिकेशन चलाया जाता है)
पादरी बोन्स

कंसोल में आउटपुट को नोट किए बिना आपने सर्वर कैसे शुरू किया?
रॉबर्टपिट

3
आपको इस बात का कोई अंदाजा नहीं है कि मैं इस पर कितना विनम्र हूं।
क्रिस्मसांडर्सन

जवाबों:


158

एक नोड.जेएस सर्वर console.logमें टर्मिनल विंडो के लिए आउटपुट होता है, ब्राउज़र की कंसोल विंडो के लिए नहीं।

आप अपना सर्वर कैसे चला रहे हैं? इसे शुरू करने के बाद आपको सीधे आउटपुट देखना चाहिए।


91
अगर मैं कर सकता हूं तो मैं अपने सवाल को वोट करूंगा। विश्वास नहीं हो रहा है कि मैंने यह संबंध नहीं बनाया है।
क्रिस्मसडर्सन

4
नोडज के साथ घूरते हुए हर कोई उम्मीद करता है ... कंसोल आउटपुट को ब्राउज़र के कंसोल, साथ ही साथ टर्मिनल पर लॉग इन करना चाहिए।
ब्रैड पार्क्स

14
@ ब्रैड नहीं, यह नहीं होना चाहिए। सभी नोड प्रोग्राम वेब सर्वर नहीं हैं, और यदि वे थे तो भी इसका कोई मतलब नहीं होगा।
दाविद

4
@ डेविड - मुझे आपकी बात मिल गई ... मुझे पता है कि आमतौर पर सर्वर साइड का सामान कभी भी क्लाइंट लॉग में सीधे प्रवेश नहीं करेगा ... लेकिन नोड.जेएस जावास्क्रिप्ट है, जो लोगों को क्लाइंट साइड के बारे में कुछ हद तक लगता है ... और तब से लॉगिंग विधि बिल्कुल क्लाइंट साइड वन, "कंसोल.लॉग" के समान नाम है, तो मुझे लगता है कि यह इस प्रकार है कि कुछ लोग सोचते हैं कि यह ब्राउज़र कंसोल में लॉग इन हो सकता है।
ब्रैड पार्क

@BradParks, @david हां, मैं ब्राउज़र कंसोल में आउटपुट का उपयोग करने के लिए भी देख रहा था console.log(), फिर मैं इस क्यू / ए तक पहुंच गया।
सिथू

9

यह पहली बार नोडज का उपयोग करने वाले किसी भी व्यक्ति के लिए भ्रमित हो सकता है। ब्राउज़र कंसोल में अपने नोड कंसोल आउटपुट को पाइप करना वास्तव में संभव है। पर एक नज़र डालेंGithub कनेक्ट-ब्राउज़र-लॉगर पर

अद्यतन: जैसा कि यान द्वारा बताया गया है, कनेक्ट-ब्राउज़र-लॉगर विरूपित प्रतीत होता है। मैं यहाँ विस्तृत रूप में NodeMonkey की सलाह दूंगा: Node.js से क्रोम कंसोल को आउटपुट


गीथब प्रोजेक्ट अब मौजूद नहीं है
यान

5
इसके अलावा, यह शायद गलत रास्ते पर जा रहा है। नोड सर्वर को सक्रिय करने के लिए ब्राउज़र कंसोल केवल एक अजीब अभ्यास है। मैं शून्य समय के बारे में सोच सकता हूं जहां यह वास्तव में उपयोगी होगा। पूरी तरह से ईमानदार होने के लिए, कंसोल से क्लाइंट में क्लाइंट से लॉग इन करने की कोशिश करना यह समझने की कमी है कि सॉफ्टवेयर कैसे बनाया जाना चाहिए। मेरा मतलब यह नहीं है कि इस तरह से, यह सिर्फ चिंताओं की अवधारणा का एक बुनियादी अलगाव है। सिर्फ इसलिए कि वे दोनों जावास्क्रिप्ट का उपयोग करते हैं इसका मतलब यह नहीं है कि वे एक ही पर्यावरण हैं। वहाँ एक बहुत महत्वपूर्ण अंतर है।
दुवेवाद

6

नोड के साथ आधुनिक --inspect का उपयोग करके कंसोल को कैप्चर किया जाता है और ब्राउज़र को रिले किया जाता है।

नोड --inspect myApp.js

या पहले लॉगिंग को पकड़ने के लिए --inspect-brk का उपयोग पहले मॉड्यूल की पहली पंक्ति पर प्रोग्राम को रोकने के लिए किया जा सकता है ...

नोड --inspect-brk myApp.js

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.