Drobna rzecz, ale myślę, że warto o niej wspomnieć. Moduły w node.js działają inaczej niż te, które już poznaliśmy i dzisiaj oswoimy się z CommonJS i require. Do dzieła.

Ok, tworzymy plik math123.js w jakimś projekcie, zakładam, że node mamy zainstalowane:

const add = (a, b) => a + b;

const sub = (a, b) => a - b;

const mul = (a, b) => a * b;

const div = (a, b) => a / b;

Dobra, teraz potrzebujemy jakiegoś określenia, że my te funkcje eksportować będziemy. Możemy zrobić to tak:

const add = (a, b) => a + b;

const sub = (a, b) => a - b;

const mul = (a, b) => a * b;

const div = (a, b) => a / b;

module.exports = {add, sub, mul, div};

Ok, teraz w innym pliku zaimportujemy sobie ten eksportowany obiekt i użyjemy go:

const MyMathModule = require('./math123');

console.log(MyMathModule.add(1,2)); //3

Ten JS odpalamy komendą:

node ./nazwa_pliku.js

Ok, fajnie, działa, możemy też dokonać dekompozycji w imporcie:

const {add, sub, mul, div} = require('./math123');

console.log(add(1,2)); //3

Istnieje też inny sposób na eksportowanie:

exports.add = (a, b) => a + b;
exports.sub = (a, b) => a - b;
exports.mul = (a, b) => a * b;
exports.div = (a, b) => a / b;

Dziwne to wszystko, ale bawimy się w node to musimy zaakceptować to dziwactwo, albo poszukać obejścia. Generalnie tradycyjne moduły w JS już znamy, teraz znamy też commonJS.