कम से कम Node.js v0.10.33
(स्थिर) / v0.11.14
(अस्थिर) से (कम से कम) v7.7.4
(इस उत्तर के लिए नवीनतम अद्यतन के रूप में संस्करण वर्तमान ) से कई उपयोगी उत्तरों का संकलन । उसकी मदद के लिए रोरी ओ'केन को टोपी की टिप ।
tl; डॉ
प्रश्न में उदाहरण के लिए वांछित आउटपुट प्राप्त करने के लिए, उपयोग करें console.dir()
:
console.dir(myObject, { depth: null }); // `depth: null` ensures unlimited recursion
क्यों नहीं util.inspect()
? क्योंकि यह नैदानिक उत्पादन के दिल में पहले से ही है: console.log()
और console.dir()
साथ ही साथ Node.js आरईपीएल का उपयोग util.inspect()
परोक्ष । यह आमतौर पर करने और कॉल करने के लिए आवश्यक नहीं हैrequire('util')
util.inspect()
सीधे करता है।
नीचे दिए गए विवरण।
- REPL : स्पष्ट रूप
util.inspect()
से वाक्यविन्यास रंग के साथ किसी भी अभिव्यक्ति की वापसी मूल्य प्रिंट करता है ;
यानी, केवल एक चर का नाम टाइप करना और Enter दबाकर उसके मान का एक निरीक्षण किया गया संस्करण मुद्रित करना होगा; उदाहरण के लिए:
o = { one: 1, two: 'deux', foo: function(){} } // The REPL echoes the object definition with syntax coloring.
util.inspect()
स्वचालित रूप से सुंदर-प्रिंट ऑब्जेक्ट और सरणी अभ्यावेदन , लेकिन जरूरत पड़ने पर ही मल्टीलाइन आउटपुट तैयार करता है ।
सुंदर-मुद्रण व्यवहार compact
को वैकल्पिक options
तर्क में संपत्ति द्वारा नियंत्रित किया जा सकता है; बिनाfalse
लाइन के मल्टी-लाइन आउटपुट का उपयोग करता है , जबकि पूरी तरह से प्रिंटिंग को अक्षम करता है; यह सशर्त बहु-पंक्ति व्यवहार को नियंत्रित करने के लिए एक नंबर (डिफ़ॉल्ट है ) पर भी सेट किया जा सकता है - डॉक्स देखें ।true
3
डिफ़ॉल्ट रूप से, आउटपुट को लगभग 60 वर्णों पर लपेटा जाता है धन्यवाद, श्रेय
, भले ही आउटपुट किसी फ़ाइल या टर्मिनल पर भेजा गया हो। व्यवहार में, चूंकि लाइन ब्रेक केवल संपत्ति की सीमाओं पर होता है , आप अक्सर छोटी लाइनों के साथ समाप्त हो जाएंगे, लेकिन वे लंबे समय तक भी हो सकते हैं (जैसे, लंबी संपत्ति मूल्यों के साथ)।
V6.3.0 + में आप breakLength
60-वर्ण सीमा को ओवरराइड करने के विकल्प का उपयोग कर सकते हैं ; यदि आप इसे सेट करते हैं Infinity
, तो सब कुछ एक ही लाइन पर आउटपुट होता है ।
यदि आप सुंदर प्रिंटिंग पर अधिक नियंत्रण चाहते हैं, तो JSON.stringify()
3 तर्क के साथ उपयोग करने पर विचार करें , लेकिन निम्नलिखित पर ध्यान दें:
- उन वस्तुओं के साथ विफल होता है जिनके पास परिपत्र संदर्भ होते हैं , जैसे
module
कि वैश्विक संदर्भ में।
- तरीके (कार्य) डिजाइन द्वारा शामिल नहीं होंगे।
- आप छिपे हुए (गैर-एन्यूमरेबल) गुणों को दिखाने का विकल्प नहीं चुन सकते।
- उदाहरण कॉल:
JSON.stringify({ one: 1, two: 'deux', three: true}, undefined, 2); // creates a pretty-printed multiline JSON representation indented with 2 spaces
util.inspect()
विकल्प वस्तु (2 तर्क):
एक वैकल्पिक विकल्प ऑब्जेक्ट को पारित किया जा सकता है जो स्वरूपित स्ट्रिंग के कुछ पहलुओं को बदल देता है; समर्थित गुणों में से कुछ हैं:
वर्तमान, पूर्ण सूची के लिए नवीनतम Node.js डॉक्स देखें ।
showHidden
- यदि
true
, तो ऑब्जेक्ट के गैर-संमिलित गुण [जिन्हें आप उपयोग करते हैं for keys in obj
या नहीं दिखाते हैं) को भी निर्दिष्ट नहीं किया Object.keys(obj)
जाएगा। के लिए चूक false
।
depth
- बताता है कि वस्तु का प्रारूपण करते समय कितनी बार पुनरावृत्ति होती है। यह बड़ी जटिल वस्तुओं के निरीक्षण के लिए उपयोगी है। चूक करना 2. इसे अनिश्चित काल के लिए फिर से पास करना
null
।
colors
- यदि सही है, तो आउटपुट ANSI रंग कोड के साथ स्टाइल किया जाएगा। के लिए चूक
false
। रंग अनुकूलन योग्य हैं [… - लिंक देखें]।
customInspect
- यदि
false
, तो inspect()
निरीक्षण की जा रही वस्तुओं पर परिभाषित कस्टम कार्य नहीं कहा जाएगा। के लिए चूक true
।
util.format()
प्रारूप-स्ट्रिंग प्लेसहोल्डर (प्रथम तर्क)
कुछ समर्थित प्लेसहोल्डर हैं:
नवीनतम Node.js डॉक्स देखेंवर्तमान, पूर्ण सूची के लिए ।
%s
- स्ट्रिंग।
%d
- संख्या (पूर्णांक और फ्लोट दोनों)।
%j
- JSON।
%%
- एकल प्रतिशत संकेत ('%')। यह एक तर्क का उपभोग नहीं करता है।