TypeError:类构造函数 ErrorHandler 不能在没有'new'的情况下被调用

编程入门 行业动态 更新时间:2024-10-06 14:25:09

TypeError:类构造函数 ErrorHandler 不<a href=https://www.elefans.com/category/jswz/34/1771313.html style=能在没有'new'的情况下被调用"/>

TypeError:类构造函数 ErrorHandler 不能在没有'new'的情况下被调用

当我尝试初始化我的节点服务器时,我遇到了这个错误。 错误:

TypeError: Class constructor ErrorHandler cannot be invoked without 'new'
at Layer.handle [as handle_request] (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:328:13)
at C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:286:9
at Function.process_params (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:346:12)
at next (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:280:10)
at urlencodedParser (C:\Users\emili\Desktop\shop\node_modules\body-parser\lib\types\urlencoded.js:91:7)
at Layer.handle [as handle_request] (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:328:13)
at C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:286:9
at Function.process_params (C:\Users\emili\Desktop\shop\node_modules\express\lib\router\index.js:346:12)

显然,错误与Express有关,但我不知道我应该怎么做才能解决它。 这是我的 ErrorHandler 文件:

class ErrorHandler extends Error {
    constructor(message, statusCode) {
        super(message);
        this.statusCode = statusCode

        Error.captureStackTrace(this, this.constructor);

    }
}
module.exports = ErrorHandler

这就是我导入它的方式:

const express = require("express");
const ErrorHandler = require("./utils/ErrorHandler");
const app = express();

//rest of the code//

app.use(ErrorHandler);
module.exports = app;
回答如下:

如果你需要处理错误你应该写一个中间件函数:

module.exports = (err, req, res, next) => {
  if (err) {
    return res.status(500).json({ message: 'Oops! Something went wrong' });
  }
  next();
};

像以前一样使用它:

const ErrorHandler = require("./utils/ErrorHandler");

app.use(ErrorHandler);

更多推荐

TypeError:类构造函数 ErrorHandler 不能在没有'new'的情况下被调用

本文发布于:2024-05-30 12:11:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770483.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:能在   函数   情况下   TypeError   ErrorHandler

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!