2012-05-10 19 views
18

जब एक सामान्य अपवाद तब होता है, निम्नलिखित की तरह एक स्टैक ट्रेस outputted है:node.js में गहरे स्टैक ट्रेस को आउटपुट कैसे करें?

util.js:38 
     case '%s': return String(args[i++]); 
         ^
TypeError: Cannot convert object to primitive value 
    at String (unknown source) 
    at util.js:38:25 
    at String.replace (native) 
    at Object.<anonymous> (util.js:35:23) 
    at Object.<anonymous> (console.js:25:36) 
    at EventEmitter.<anonymous> (/project/src/routines/debug/boot.js:16:21) 
    at EventEmitter.emit (/project/node_modules/eventemitter2/lib/eventemitter2.js:319:22) 
    at /project/src/bootstrap.js:15:14 
    at /project/src/util/routineloader.js:36:11 
    at /project/src/util/routineloader.js:47:6 

कौन सा बहुत उपयोगी है। मैं उसके बाद निम्न कहीं करते हैं:

process.on('uncaughtException', function(err) { 
     console.trace(); 
     throw err; 
    }); 

मैं केवल मिलती है:

Trace: 
    at EventEmitter.<anonymous> (/project/src/routines/debug/exceptions.js:4:17) 
    at EventEmitter.emit (events.js:88:20) 

कौन सा बिल्कुल उपयोगी नहीं है।

मैं इसे पूरे स्टैक ट्रेस को मूल रूप से कैसे वापस कर सकता हूं?

+0

के संभावित डुप्लिकेट (http [Node.js में एक स्टैक ट्रेस मुद्रित करने के लिए कैसे?]: // stackoverflow। com/प्रश्न/2923858/कैसे करने वाली प्रिंट एक ढेर का पता लगाने में नोड js) –

उत्तर

25

आप बहुत करीब हैं:

process.on('uncaughtException', function(err) { 
    console.log(err.stack); 
    throw err; 
}); 

function foo() { 
    throw new Error("HI. I'm an error."); 
} 

foo(); 

/* Prints 
Error: HI. I'm an error. 
    at foo (/Users/rye/Desktop/test.js:7:9) 
    at Object.<anonymous> (/Users/rye/Desktop/test.js:10:1) 
    at Module._compile (module.js:441:26) 
    at Object..js (module.js:459:10) 
    at Module.load (module.js:348:31) 
    at Function._load (module.js:308:12) 
    at Array.0 (module.js:479:10) 
    at EventEmitter._tickCallback (node.js:192:40) 
*/ 
2
node --stack_trace_limit=200 your-script.js 
0

मैंने पाया कि मैं सही परिणाम मिल गया तो मैं एपीआई को देखा है जब मैं console.log इस्तेमाल किया (गलती) और निम्नलिखित पाया:

var mystring=require('util').inspect(error_object); 

और आप एक स्ट्रिंग के रूप में स्टैक ट्रेस मिलेगा