Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS在子类下的组函数_Javascript_Node.js - Fatal编程技术网

Javascript NodeJS在子类下的组函数

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 })

也许我没有把标题写对。下面是我试图做的解释

我正在为我的项目创建一个helper.js文件。它包含许多函数,我在下面粘贴了一个。我使用module.exports导出此函数

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都有误导性。是的,考虑到问题的新手性质,导航可能有点棘手。