我可以 export/require Node.js 中的模块在没有 var 保存其对象的情况下使用吗?
Can I export/require a module in Node.js to be used without a var holding its objects?
我正在创建自己的错误库,以便在我的 API 上为 return 提供一个自定义的特定错误和有据可查的错误目录。我正在做这样的事情:
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, ...);
有没有办法 export
模块或 require
它允许我这样做?
我用谷歌搜索没有找到任何答案,我也检查了所有这些 interface design patterns for Node.js modules 但没有人适用。
您可以将其设置为全局变量,但一如既往地使用全局变量时,请注意副作用。
EmptyParamError = createErrorType(...);
就是这样。只需省略 var 关键字,不要将其设置为 属性.
如果只有一两种类型,可以跳过CError
变量,像这样:
var EmptyParamError = require('cerror').EmptyParamError;
if(!passwd)
callback(new EmptyParamError(passwd, ...));
如果您在一个文件中有多种类型,将会有多个 require('cerror')
语句,但我相信这不会对性能造成重大影响,因为(如果我理解正确的话)Node 会在第一时间对其进行缓存。
我正在创建自己的错误库,以便在我的 API 上为 return 提供一个自定义的特定错误和有据可查的错误目录。我正在做这样的事情:
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, ...);
有没有办法 export
模块或 require
它允许我这样做?
我用谷歌搜索没有找到任何答案,我也检查了所有这些 interface design patterns for Node.js modules 但没有人适用。
您可以将其设置为全局变量,但一如既往地使用全局变量时,请注意副作用。
EmptyParamError = createErrorType(...);
就是这样。只需省略 var 关键字,不要将其设置为 属性.
如果只有一两种类型,可以跳过CError
变量,像这样:
var EmptyParamError = require('cerror').EmptyParamError;
if(!passwd)
callback(new EmptyParamError(passwd, ...));
如果您在一个文件中有多种类型,将会有多个 require('cerror')
语句,但我相信这不会对性能造成重大影响,因为(如果我理解正确的话)Node 会在第一时间对其进行缓存。