Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js call function on require

Is it possible to call a function in a Node.js module when it's required.

app.js

const Database = require('./database').Database;

const UsersModel = require('./model').Model; // pass the name = Users and database
const AdminsModel = require('./model').Model; // pass the name = Admins and database

database.js

export class Database {
    // some functions here
}

model.js

export class Model {
    onModelCreated(name, database) {
        this.name = name;
        this.database = database;
    }

    insert() {}
    find() {}
    delete() {}
    update() {}
}
like image 668
Devanshu Linux Avatar asked Oct 25 '25 21:10

Devanshu Linux


2 Answers

Since require calls are cached, all the code inside the module is called once, when you require that module.

abc/index.js

const calledOnce = () => console.log('once');

calledOnce();

console.log('Also once');

module.exports = {
    ...
}
like image 121
Marcos Casagrande Avatar answered Oct 28 '25 13:10

Marcos Casagrande


for the really lazy among us:

call-function-on-require.js

(() => {
  console.log('call function on require');
})();

index.js

require(`./call-function-on-require`);

output:

'call function on require'

another solution

or, if you like in call-function-on-require.js

module.exports = () => {
  console.log('call function on require');
}

// index.js: require(`./call-function-on-require`)();
like image 40
MeerArtefakt Avatar answered Oct 28 '25 14:10

MeerArtefakt



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!