Explanation for nested module.exports
I have a piece of code in an old code base that contains nested module.exports
like the following. I haven't seen such a form of export before. Can some please explain or atleast point me to the right articles?
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();
;
;
javascript node.js nested nested-loops
add a comment |
I have a piece of code in an old code base that contains nested module.exports
like the following. I haven't seen such a form of export before. Can some please explain or atleast point me to the right articles?
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();
;
;
javascript node.js nested nested-loops
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06
add a comment |
I have a piece of code in an old code base that contains nested module.exports
like the following. I haven't seen such a form of export before. Can some please explain or atleast point me to the right articles?
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();
;
;
javascript node.js nested nested-loops
I have a piece of code in an old code base that contains nested module.exports
like the following. I haven't seen such a form of export before. Can some please explain or atleast point me to the right articles?
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();
;
;
javascript node.js nested nested-loops
javascript node.js nested nested-loops
asked Nov 12 '18 at 7:02
Rajkumar SomasundaramRajkumar Somasundaram
9381712
9381712
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06
add a comment |
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06
add a comment |
2 Answers
2
active
oldest
votes
It could have been an attempt at generating modules on the fly in order to share global state across the application, however it's not clear to me how you would then import such modules. I think it's probably bad design more than anything; by the look of it these inner exports
statements look totally unnecessary.
add a comment |
This looks like an attempt to write an IIFE gone horribly wrong. It probably should simply be
// module-local variable
const someMethod = new func1(options);
module.exports = function func4(req, res, next)
someMethod.anotherFunc1(req, res);
next();
;
module.exports.anotherFunc = function (req, res)
someMethod.anotherFunc1(req, res);
;
module.exports.func1 = someMethod.func3;
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257266%2fexplanation-for-nested-module-exports%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
It could have been an attempt at generating modules on the fly in order to share global state across the application, however it's not clear to me how you would then import such modules. I think it's probably bad design more than anything; by the look of it these inner exports
statements look totally unnecessary.
add a comment |
It could have been an attempt at generating modules on the fly in order to share global state across the application, however it's not clear to me how you would then import such modules. I think it's probably bad design more than anything; by the look of it these inner exports
statements look totally unnecessary.
add a comment |
It could have been an attempt at generating modules on the fly in order to share global state across the application, however it's not clear to me how you would then import such modules. I think it's probably bad design more than anything; by the look of it these inner exports
statements look totally unnecessary.
It could have been an attempt at generating modules on the fly in order to share global state across the application, however it's not clear to me how you would then import such modules. I think it's probably bad design more than anything; by the look of it these inner exports
statements look totally unnecessary.
answered Nov 12 '18 at 7:40
customcommandercustomcommander
1,84011019
1,84011019
add a comment |
add a comment |
This looks like an attempt to write an IIFE gone horribly wrong. It probably should simply be
// module-local variable
const someMethod = new func1(options);
module.exports = function func4(req, res, next)
someMethod.anotherFunc1(req, res);
next();
;
module.exports.anotherFunc = function (req, res)
someMethod.anotherFunc1(req, res);
;
module.exports.func1 = someMethod.func3;
add a comment |
This looks like an attempt to write an IIFE gone horribly wrong. It probably should simply be
// module-local variable
const someMethod = new func1(options);
module.exports = function func4(req, res, next)
someMethod.anotherFunc1(req, res);
next();
;
module.exports.anotherFunc = function (req, res)
someMethod.anotherFunc1(req, res);
;
module.exports.func1 = someMethod.func3;
add a comment |
This looks like an attempt to write an IIFE gone horribly wrong. It probably should simply be
// module-local variable
const someMethod = new func1(options);
module.exports = function func4(req, res, next)
someMethod.anotherFunc1(req, res);
next();
;
module.exports.anotherFunc = function (req, res)
someMethod.anotherFunc1(req, res);
;
module.exports.func1 = someMethod.func3;
This looks like an attempt to write an IIFE gone horribly wrong. It probably should simply be
// module-local variable
const someMethod = new func1(options);
module.exports = function func4(req, res, next)
someMethod.anotherFunc1(req, res);
next();
;
module.exports.anotherFunc = function (req, res)
someMethod.anotherFunc1(req, res);
;
module.exports.func1 = someMethod.func3;
answered Nov 12 '18 at 8:09
BergiBergi
372k58561889
372k58561889
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257266%2fexplanation-for-nested-module-exports%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Wow! That is a bit convoluted. It kind of looks like the original developer was trying to use recursion and didn't quite know how.
– Snake14
Nov 12 '18 at 7:08
This is horrible code. Calling a function should never mutate exports. You will not find any article that recommends this.
– Bergi
Nov 12 '18 at 8:06