javascript - কিভাবে Node.js একটি স্ট্যাক ট্রেস মুদ্রণ করতে?



stack-trace (6)

কেউ কি Node.js একটি স্ট্যাক ট্রেস মুদ্রণ করতে জানেন?


Answer #1

আপনি কল স্ট্যাক ট্র্যাক করতে একটি শক্তি পূর্ণ মডিউল যা node-stack-trace মডিউল ব্যবহার করতে পারেন।


Answer #2

আমি যা মুদ্রণ করছি তা জানার জন্য নডেজগুলিতে সম্পূর্ণ স্ট্যাক ট্রেস সম্ভব নয়, আপনি কেবল একটি "আংশিক" স্ট্যাক ট্রেস মুদ্রণ করতে পারেন, আপনি কোড থেকে এসেছেন যেখানে আপনি দেখতে পাবেন না, যেখানে ব্যতিক্রমটি ঘটে। এই ইউটিউব ভিডিওতে রায়ান ডাহল ব্যাখ্যা করেছেন। সুনির্দিষ্ট হওয়ার জন্য http://youtu.be/jo_B4LTHi3I মিনিট 56:30 এ। আশাকরি এটা সাহায্য করবে




Answer #5

যদি আপনি ত্রুটিটির স্ট্যাক ট্রেসটি কেবল (এবং ত্রুটির বার্তা নয়) লগ ইন করতে চান তবে নোড 6 এবং এর উপরে স্বয়ংক্রিয়ভাবে স্ট্যাক ট্রেস এর মধ্যে ত্রুটি নাম এবং বার্তা অন্তর্ভুক্ত থাকে, যদি আপনি কিছু কাস্টম ত্রুটি পরিচালনা করতে চান তবে এটি বিরক্তিকর:

console.log(error.stack.replace(error.message, ''))

এই কার্যকারিতা শুধুমাত্র ত্রুটি নাম এবং স্ট্যাক ট্রেস লগ করবে (যাতে আপনি, উদাহরণস্বরূপ, ত্রুটি বার্তাটি ফরম্যাট করতে পারেন এবং আপনার কোডে অন্য কোথাও চান তা প্রদর্শন করতে পারেন)।

উপরের উদাহরণটি শুধুমাত্র স্ট্যাক ট্রেস দ্বারা অনুসরণ করা ত্রুটি নাম মুদ্রণ করবে, উদাহরণস্বরূপ:

Error: 
    at /Users/cfisher/Git/squashed/execProcess.js:6:17
    at ChildProcess.exithandler (child_process.js:213:5)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:498:12)

পরিবর্তে:

Error: Error: Command failed: sh ./commands/getBranchCommitCount.sh HEAD
git: 'rev-lists' is not a git command. See 'git --help'.

Did you mean this?
        rev-list

    at /Users/cfisher/Git/squashed/execProcess.js:6:17
    at ChildProcess.exithandler (child_process.js:213:5)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:498:12)

Answer #6

Error.captureStackTrace চেষ্টা করুন (targetObject [, constructorOpt])

const myObj = {};
function c() {
  // pass
}

function b() {
    Error.captureStackTrace(myObj)
    c()
} 

function a() {
    b()
}

a()

console.log(myObj.stack)

ফাংশন a এবং b ত্রুটি স্ট্যাকে ধরে রাখা হয় এবং myObj সংরক্ষিত হয়।





stack-trace