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.