Ich verbessere meine Fehlerbehandlung in Node.js/express.Dateiname in Zeilennummer im Trace-Stack holen/Fehlerobjekt
Gibt es eine Möglichkeit, den Dateinamen und die Zeilennummer zu erhalten, wo dieser Fehler in meinem Code aufgetreten ist?
error-handler.js
, mit console.trace
, ist nur die Route, die Fehler behandelt ... nicht, wo der Fehler tatsächlich passiert ist.
class FacebookErr extends Error {
constructor(httpCode, ...args) {
super(...args)
Error.captureStackTrace(this, FacebookErr);
this.name = 'FacebookErr';
this.date = new Date();
this.httpCode = httpCode;
}
}
fetch(uri)
.then(status)
.then(toJson)
.then(getUserInfo)
.catch((err) => {
next(new FacebookErr(500, err));
});
Trace: FacebookErr: ReferenceError: uri is not defined
at log (/home/one/github/dolphin/app/error-handler.js:4:11)
at Layer.handle_error (/home/one/github/dolphin/node_modules/express/lib/router/layer.js:71:5)
at trim_prefix (/home/one/github/dolphin/node_modules/express/lib/router/index.js:315:13)
at /home/one/github/dolphin/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/one/github/dolphin/node_modules/express/lib/router/index.js:335:12)
at Immediate.next (/home/one/github/dolphin/node_modules/express/lib/router/index.js:275:10)
at Immediate.<anonymous> (/home/one/github/dolphin/node_modules/express/lib/router/index.js:635:15)
at runCallback (timers.js:783:20)
at tryOnImmediate (timers.js:743:5)
at processImmediate [as _immediateCallback] (timers.js:714:5)
Sun Dec 24 2017 13:39:37 GMT-0600 (CST)
Ich bin nicht ganz sicher, ob ich verstehen, wie dieses Projekt aufgebaut wurde ... 'FacebookErr' definiert ist, wo ? Wo tritt der Fehler auf? Bitte fügen Sie Ihre Projektstruktur und die obigen Informationen hinzu. – Jeffrey
Es ist definiert als "Klasse FacebookErr erweitert Fehler", siehe Originalbeitrag. Alle gegebenen Informationen sollten ausreichen. – dman
Ganz offensichtlich ist das die korrekte Klassendefinition, ich frage, wo diese Klassendefinition liegt. In welcher Datei befindet sich 'FacebookErr'? Wo ist das in Bezug auf wo der Fehler tatsächlich geworfen wird? – Jeffrey