[英]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.