最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

网站源码admin49浏览0评论

TypeError:类构造函数 ErrorHandler 不能在没有'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);
发布评论

评论列表(0)

  1. 暂无评论