Javascript NodeJS在子类下的组函数
也许我没有把标题写对。下面是我试图做的解释 我正在为我的项目创建一个helper.js文件。它包含许多函数,我在下面粘贴了一个。我使用module.exports导出此函数Javascript NodeJS在子类下的组函数,javascript,node.js,Javascript,Node.js,也许我没有把标题写对。下面是我试图做的解释 我正在为我的项目创建一个helper.js文件。它包含许多函数,我在下面粘贴了一个。我使用module.exports导出此函数 function generateInternalError(message, stack_trace) { if (process.env.NODE_ENV == 'dev') { console.log({ message: message, stack_trace: stack_trace })
function generateInternalError(message, stack_trace) {
if (process.env.NODE_ENV == 'dev') {
console.log({ message: message, stack_trace: stack_trace });
} else {
console.log({message: message});
}
}
module.exports = {
generateInternalError: generateInternalError
};
如果要使用此函数,我将调用:
helper.generateInternalError('Not Found',new Error().stack);
它的工作原理与预期一致
但是,我的任务是创建函数的类别。基本上,我需要以下几点:
helper.errors.generateInternalError('Not Found',new Error().stack);
我似乎无法找到正确的方法来导出NodeJS中的函数类或函数对象,从而不会出现如下错误:
TypeError: helper.errors.generateClientError is not a function
感谢您的帮助
谢谢最好在单独的文件中构造助手子类 例子 src/helpers.js 高级文书主任/助理/ src/helpers/errors.js 文件helpers.js 文件helpers/errors.js 这样构造代码将使根助手文件非常有条理,并创建一个易于为新子类复制的模式 如果您更喜欢模块化程度较低的方法,您可以简单地返回一个大的JSON对象,就像其他对象所演示的那样
module.exports = {
errors: {
generateInternalError: function(){
//internal error code
},
generateDatabaseError: function(){
//db error code
}
}
}
最好在单独的文件中构造助手子类 例子 src/helpers.js 高级文书主任/助理/ src/helpers/errors.js 文件helpers.js 文件helpers/errors.js 这样构造代码将使根助手文件非常有条理,并创建一个易于为新子类复制的模式 如果您更喜欢模块化程度较低的方法,您可以简单地返回一个大的JSON对象,就像其他对象所演示的那样
module.exports = {
errors: {
generateInternalError: function(){
//internal error code
},
generateDatabaseError: function(){
//db error code
}
}
}
文件的
module.exports
属性只是一个将名称映射到函数的对象。您可以任意定义它,例如:
module.exports = {
errors: {
generateInternalError,
...
},
...
};
然后,将定义
require('./helper').errors.generateInternalError
。文件的模块.exports
属性只是一个将名称映射到函数的对象。您可以任意定义它,例如:
module.exports = {
errors: {
generateInternalError,
...
},
...
};
然后,
require('./helper')。errors.generateInternalError
将被定义。helpers
如果一切都是一个助手,那么它只是噪音,所以请删除它。只需使用常规模块,除非您确定该类别中只有一个函数,否则请导出多个函数。如果您仅使用module.exports导出一个函数,则不需要将其作为对象的属性,这也意味着您可以说const genrror=require('./errors')
不要制作类似于
helpers.errors.someErrorFunc的东西,因为helpers是噪声,您只使用单独的模块文件进行分类。不要试图让Node.js看起来像Java或其他同样可怕的东西。helpers
如果所有东西都是一个helper,那么helpers就是噪音,所以不要再提了。只需使用常规模块,除非您确定该类别中只有一个函数,否则请导出多个函数。如果您仅使用module.exports导出一个函数,则不需要将其作为对象的属性,这也意味着您可以说const genrror=require('./errors')
不要制作类似于helpers.errors.someErrorFunc的东西,因为helpers是噪声,您只使用单独的模块文件进行分类。不要试图使Node.js看起来像Java或其他同样可怕的东西。module.exports={errors:{generateInternalError}代码>@4castle,这很有效!有没有办法也在一个结构中编写函数?我不太清楚你的意思,但是你可以在对象中添加更多的函数,只需一个逗号和另一个键/值对。module.exports={errors:{generateInternalError}代码>@4castle,这很有效!有没有办法也在一个结构中编写函数?我不太清楚你的意思,但你可以在对象中添加更多函数,只需一个逗号和另一个键/值对。根据问题中的用例,“静态方法”就是他们想要的,这意味着使用prototype
或class
语法是不合适的。(虽然我也认为类
是)是的,在我再次阅读ops问题后,我为静态和动态方法提供了一个示例。不确定为什么是-2,因为我已经回答了ops问题,并提供了多个可供学习的替代方案。我认为由于建议不是很好,所以会出现反对票。第一个代码段很好,但代码段2、3和4都有误导性。是的,考虑到问题的新手性质,导航可能有点棘手。根据问题中的用例,“静态方法”是他们想要的,这意味着使用prototype
或class
语法不合适。(虽然我也认为类
是)是的,在我再次阅读ops问题后,我为静态和动态方法提供了一个示例。不确定为什么是-2,因为我已经回答了ops问题,并提供了多个可供学习的替代方案。我认为由于建议不是很好,所以会出现反对票。第一个代码段很好,但是代码段2、3和4都有误导性。是的,考虑到问题的新手性质,导航可能有点棘手。