I\'m just getting started with node.js and I have some experience with Python. In Python I could check whether the __name__ variable was set to \"__main__
You can use module.parent to determine if the current script is loaded by another script.
e.g.
a.js:
if (!module.parent) {
console.log("I'm parent");
} else {
console.log("I'm child");
}
b.js:
require('./a')
run node a.js will output:
I'm parent
run node b.js will output:
I'm child
The accepted answer is fine. I'm adding this one from the official documentation for completeness:
When a file is run directly from Node, require.main is set to its module. That means that you can determine whether a file has been run directly by testing
require.main === module
For a file "foo.js", this will be true if run via node foo.js, but false if run by require('./foo').
Because module provides a filename property (normally equivalent to __filename), the entry point of the current application can be obtained by checking require.main.filename.
Both options !module.parent and require.main === module work.
If you are interested in more details please read my detailed blog post about this topic.