繁体   English   中英

我可以导出/请求Node.js中的模块以在没有var持有其对象的情况下使用吗?

[英]Can I export/require a module in Node.js to be used without a var holding its objects?

我正在创建自己的错误库,以具有自定义目录,该目录包含特定错误并有据可查的错误,可在我的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代码,如下所示:(无CError参考)

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

有没有一种方法可以export模块或require它允许我执行此操作?

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

您可以将其设置为全局变量,但是在使用全局变量时始终要注意副作用。

EmptyParamError = createErrorType(...);

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

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

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

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

如果单个文件中有多个类型,将有多个require('cerror')语句,但是我认为不会对性能产生重大影响,因为(如果我理解正确的话)Node会第一次对其进行缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM