小编Shi*_*aay的帖子

如何在node.js中使用Error.captureStackTrace

最近我正在研究 Node.js 中全局错误处理中间件的实现。然后,我遇到了这个Error.captureStackTrace(this,this.constructor)。

我检查了 Node 文档并发现 - 在 targetObject 上创建一个 .stack 属性,该属性在访问时返回一个字符串,表示调用 Error.captureStackTrace() 的代码中的位置。

MDN 文档 - 维护正确的堆栈跟踪以查找抛出错误的位置

appError.js 文件

class AppError extends Error {
constructor(message, statusCode) {
super(message);

this.statusCode = statusCode;

 // Error.captureStackTrace(this, this.constructor);
}}
Run Code Online (Sandbox Code Playgroud)

app.js 文件

const AppError = require('./appError');
const express = require('express');
const app = express();

app.all('*', (req,res,next) => {
         const custErr = new AppError('Mentioned Route is not available on server','404');
         next();
})
Run Code Online (Sandbox Code Playgroud)

当我尝试调试代码时我的观察:

  1. 我发现 .stack 属性在 custErr 对象上可用,即使我在 appError.js 文件中注释了 Error.captureStackTrace(this, this.constructor) 。
  2. 我仍然很困惑如何利用 Error.captureStackTrace() …

node.js

11
推荐指数
1
解决办法
5万
查看次数

标签 统计

node.js ×1