看看有关构建类的其他一些问题,我无法弄清楚我在这里做错了什么。
我有一个名为 ValidationError 的自定义错误类,位于文件validationError.js 中:
class ValidationError extends Error {
constructor(message, errors) {
super(message);
this.errors = errors;
this.name = this.constructor.name;
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, this.constructor);
} else {
this.stack = (new Error(message)).stack;
}
}
}
module.exports = ValidationError;
我需要在另一个文件中使用此类:
const { ValidationError } = require('./validationError');
并像这样调用它,这是抛出错误的行:
const validationError = new ValidationError('JSON failed validation.', result.errors);
抛出的错误是“TypeError: ValidationError is not a constructor”。
我使用的是 Node 10.6.4。
那么我在这里做错了什么?感谢您的帮助!
您不是使用 .ValidationError
构造函数导出对象,而是直接将该类设置为 module.exports
。所以在你的导入中它应该是
const ValidationError = require('./validationError');
并且不使用解构语法。
我是一名优秀的程序员,十分优秀!