我有一段代码在一个旧的代码库中,它包含嵌套的module.exports
,如下所示。我以前从未见过这种形式的导出。有人能解释一下吗?或者至少给我指一下正确的文章。
module.exports = function something(options) {
someMethod = new func1(options);
module.exports.anotherFunc = function (req, res) {
someMethod.anotherFunc1(req, res);
};
module.exports.func1 = someMethod.func3;
return function func4(req, res, next) {
someMethod.anotherFunc1(req, res);
next();
};
};
3条答案
按热度按时间yhived7q1#
这可能是为了在整个应用程序中共享全局状态而动态生成模块的尝试,但是我不清楚如何导入这样的模块,我认为这可能是糟糕的设计;从外观上看,这些内部的
exports
语句看起来完全没有必要。xurqigkl2#
我来到这里是因为我遇到了一些类似下面例子的代码,在我的例子中,
exports
实际上并没有在其他导出中被更改--它被用来调用其他导出的函数--但它仍然令人困惑。我通过将函数与导出任务分离,对其进行了重构,使其更加清晰:
由于属性和函数名相同,因此可以使用对象简写法编写
最终重构代码
yduiuuwa3#
这看起来像是一次写IIFE的尝试,但却出了严重的错误。