Shinto C V
Shinto C V

Reputation: 774

Javascript 'require()' method

In python, when you import a module the statements inside the 'if name == main' block of the imported module is not executed.

Is there any equivalent approach which can prevents the execution of unwanted statements in the imported module in javascript?

Upvotes: 1

Views: 516

Answers (2)

Quentin
Quentin

Reputation: 943556

Via fuyushimoya's comment.

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').

Node.js documentation

So:

if (require.main === module) {
    // Code that runs only if the module is executed directly
} else {
    // Code that runs only if the code is loaded as a module
}

Upvotes: 5

byrass
byrass

Reputation: 360

Simply group your statements inside functions, and export the functions you want.

exports.function1 = new function () {
  //some code
}
function function2() {
  //some other code 
}

More on it here.

Upvotes: -2

Related Questions