0

我正在创建自己的错误库,以便在我的 API 上返回特定且有据可查的错误的自定义目录。我正在做这样的事情:

module.exports = CError;

function CError () {
}

// CUSTOM ERROR TYPES
CError.EmptyParamError = createErrorType(...);
CError.InvalidFormatError = createErrorType(...);

我现在如何使用自定义错误类型的示例:

CError = require('cerror');

if(!passwd)
    callback(new CError.EmptyParamError(passwd, ...));

我将在整个项目中使用这个错误,我希望有一个更清晰的代码:(没有CError参考)

if(!passwd)
    callback(new EmptyParamError(passwd, ...);

有没有办法exportrequire我这样做?

我用谷歌搜索没有找到任何答案,我还检查了 Node.js 模块的所有这些界面设计模式,但没有一个适用。

4

2 回答 2

1

您可以将其设置为全局变量,但与使用全局变量时一样,请注意副作用。

EmptyParamError = createErrorType(...);

而已。只需去掉 var 关键字,不要将其设置为属性。

于 2015-05-20T14:25:45.047 回答
0

如果只有一种或两种类型,您可以CError像这样跳过变量:

var EmptyParamError = require('cerror').EmptyParamError;

if(!passwd)
    callback(new EmptyParamError(passwd, ...));

如果您在单个文件中有多种类型,则会有多个require('cerror')语句,但我相信那里没有显着的性能影响,因为(如果我理解正确的话)Node 会第一次缓存它。

于 2015-05-20T14:41:14.493 回答