Sign in
Log inSign up

Post hidden from Hashnode

Posts can be hidden from Hashnode network for various reasons. Contact the moderators for more details.

Node.JS 3: Vlastní moduly

Programuju Aran's photo
Programuju Aran
·Feb 7, 2020

V minulé epizodě jsme si ukázali, jak založit funkční Node.JS projekt. Dneska si ukážeme, jak rozvětvit naši aplikaci podle oblíbeného vývojářského postupu KISS (jedna z verzí výkladu této zkratky je "Keep it short and simple.") pomocí modul.

Moduly (anglicky Modules) se v mnohém podobají knihovnám v JS. Každý soubor je navíc brán jako samostatný modul.

Abychom mohli zařadit moduly do naší aplikace, potřebujeme funkci require(jmenomodulu). Může být použita k importování

  1. vlastních modulů
  2. vestavěných modulů (např.: http)
  3. externích modulů nainstalovaných pomocí npm.

Tvorba vlastního modulu

Můžeme vytvořit vlastní modul a potom jej jinde v našem projektu exportovat. Rozdíl mezi modulem a obyčejným javascriptovým souborem je schopnost vyexportovat z modulu to, co potřebujeme (proměnné, objekty, funkce, vlastnosti (properties) atd.)

Zkusme vytvořit například modul, který pro nás vypočítá objem koule a krychle.

Vytvoříme soubor modulu, já si jej pojmenuji např. mujprvnimodul.js, nadeklarujeme si v něm dvě funkce:

exports.koule = function (r) {
  return 4/3 * Math.PI * Math.pow(r, 3); // funkce Math.pow umocňuje poloměr r na třetí
};

exports.krychle = function (a) {
    return Math.pow(a,3);
 };

Používáme klíčové slovo exports., díky kterému je funkce dostupná i mimo soubor mujprvnimodul.js.

Nyní modul využijeme v hlavním souboru index.js. Vytvoříme si proměnnou objem, jako parametr funkce dosadím např. 4 - to je tedy poloměr koule a hrana krychle. Vypíšeme si vše do konzole pomocí volání console.log:

const objem = require('./mujprvnimodul');
console.log("Objem koule je " + objem.koule(4)
    + " metrů krychlových a objem krychle je "
    + objem.krychle(4) + " metrů krychlových.");

V konzoli se nám zobrazí sdělení:

Objem koule je 268.082573106329 metrů krychlových a objem krychle je 64 metrů krychlových.

Projekt najdete na Githubu ve složce Node.JS - mujprvnimodul.js a index.js.