Co je Express.js? Vše, co byste měli vědět

Express.js je nejoblíbenější backendový framework pro Node.js a je rozsáhlou součástí ekosystému JavaScriptu.

Je navržen pro vytváření jednostránkových, vícestránkových a hybridních webových aplikací, stal se také standardem pro vývoj backendových aplikací s Node.js a je backendovou součástí něčeho známého jako MEVN stack.

MEVN je bezplatný a open source softwarový balík JavaScript pro vytváření dynamických webových stránek a webových aplikací, který má následující součásti:

  1. MongoDB: MongoDB je standardní NoSQL databáze
  2. Express.js: Výchozí rámec webových aplikací pro vytváření webových aplikací
  3. Vue.js: Progresivní framework JavaScript používaný pro vytváření front-end webových aplikací
  4. Node.js: JavaScript engine používaný pro škálovatelné serverové a síťové aplikace.

Tato příručka prozkoumá klíčové funkce rámce Express.js a způsob, jak vytvořit svou první aplikaci.

Co je Express.js?

Express.js, někdy také označovaný jako „Express“, je minimalistický, rychlý backendový framework Node.js podobný Sinatře, který poskytuje robustní funkce a nástroje pro vývoj škálovatelných backendových aplikací. Poskytuje vám směrovací systém a zjednodušené funkce pro rozšíření rámce vývojem výkonnějších komponent a dílů v závislosti na případech použití vaší aplikace.

Rámec poskytuje sadu nástrojů pro webové aplikace, požadavky a odpovědi HTTP, směrování a middleware pro vytváření a zavádění rozsáhlých aplikací připravených pro podniky.

Poskytuje také nástroj rozhraní příkazového řádku (CLI) s názvem Node Package Manager (NPM), kde mohou vývojáři vytvářet zdroje pro vyvinuté balíčky. Také to nutí vývojáře řídit se zásadou Don’t Repeat Yourself (DRY).

Princip DRY je zaměřen na omezení opakování softwarových vzorů, jejich nahrazení abstrakcemi nebo použití normalizace dat, aby se zabránilo nadbytečnosti.

K čemu se Express.js používá?

Express.js se používá pro širokou škálu věcí v ekosystému JavaScript/Node.js – můžete s ním vyvíjet aplikace, koncové body API, směrovací systémy a rámce.

Níže je uveden seznam několika typů aplikací, které můžete vytvořit pomocí Express.js.

Jednostránkové aplikace

Single-Page Applications (SPA) představují moderní přístup k vývoji aplikací, ve kterém je celá aplikace směrována do jediné indexové stránky. Express.js je vynikající framework pro vytváření API, které propojuje tyto SPA aplikace a konzistentně obsluhuje data. Některé příklady jednostránkových aplikací jsou Gmail, Mapy Google, Airbnb, Netflix, Pinterest, Paypal a mnoho dalších. Společnosti využívají SPA k vybudování plynulé a škálovatelné zkušenosti.

Nástroje pro spolupráci v reálném čase

Nástroje pro spolupráci jsou tu, aby usnadnily způsob, jakým firmy pracují a spolupracují každý den, a s Express.js můžete snadno vyvíjet aplikace pro spolupráci a sítě v reálném čase.

Rámec se také používá k vývoji aplikací v reálném čase, jako jsou chatování a aplikace dashboard, kde je snadné integrovat WebSocket do rámce.

Express.js se stará o směrování a middlewarovou část procesu a umožňuje vývojářům soustředit se na životně důležitou obchodní logiku těchto funkcí v reálném čase při vývoji živých nástrojů pro spolupráci.

Streamovací aplikace

Aplikace pro streamování v reálném čase, jako je Netflix, jsou složité a mají mnoho vrstev datových toků. Chcete-li takovou aplikaci vyvinout, potřebujete pevný rámec pro efektivní zpracování asynchronních datových toků.

Je to ideální rámec pro vytváření a nasazování podnikových a škálovatelných streamovacích aplikací.

Aplikace Fintech

Fintech je počítačový program a další technologie používané k podpoře nebo umožnění bankovních a finančních služeb. Vytváření fintech aplikací je v současnosti trendem v oboru a Express.js je rámcem volby pro vytváření vysoce škálovatelných fintech aplikací.

Pokud uvažujete o vybudování fintech aplikace s vysokým počtem uživatelů a objemem transakcí, pak se připojíte ke společnostem jako Paypal a Capital One při vývoji a nasazení vaší aplikace pomocí Express.js.

Proč byste měli používat Express.js

Existuje několik důvodů, proč byste měli zvážit použití Express.js pro svůj další projekt, od rychlejšího I/O pro rychlejší požadavky a odpovědi až po jeho jednovláknový systém a asynchronní procesy. Používá také strukturu MVC ke zjednodušení manipulace s daty a směrovacích systémů.

Pojďme se blíže podívat na některé z hlavních důvodů, proč byste měli zvážit použití Express.js.

Flexibilní a rychlé

Express.js je velmi snadno použitelný a flexibilní a je rychlejší než jakýkoli jiný framework Node.js. Minimalistický rámec, který nabízí rychlý vývoj aplikací a zmírňuje stres spojený s ovládáním mnoha různých částí většího rámce. Poskytuje také bohaté funkce, jako je vynikající systém směrování, middleware a vyjednávání obsahu hned po vybalení.

Část MEAN Stack

Express.js je rámec volby v každém zásobníku reprezentovaném E v libovolném zásobníku, jako je MERN, MEAN a tak dále. Lze jej také snadno integrovat do libovolného zásobníku nebo technologie, aby se ukázalo, jak zásadní je rámec v procesu vývoje zásobníku MEAN.

A co víc, dokáže se efektivně propojit s robustnějším systémem správy databází než konvenční MySQL a poskytuje bezproblémový vývojový proces napříč každým stackem. Díky této kombinaci funkcí je Express.js velmi populární mezi vývojáři MEAN.

Škálovatelnost

Express.js se v průběhu let ukázal jako velmi škálovatelný kvůli množství velkých společností, které tento rámec denně používají na svém serveru.

Efektivně zpracovává požadavky a odpovědi uživatelů a při vývoji rozsáhlých webových aplikací nevyžaduje žádné další konfigurace.

Má vynikající moduly, balíčky a další zdroje, což pomáhá vývojářům vytvářet spolehlivé a škálovatelné webové aplikace.

Podporováno Google V8 Engine

Express.js podporuje mnoho balíčků enginu Google V8, díky čemuž je rámec velmi výkonný pro vytváření a nasazování aplikací v reálném čase, spolupráce a síťových aplikací na podnikové úrovni.

Google V8 engine je open source vysoce výkonný JavaScript a WebAssembly engine, který podporuje vysokou rychlost a škálovatelnost pro složité a intenzivní aplikace. Když používáte balíčky využívající engine Google V8, je to pro vaši backendovou aplikaci masivní zvýšení výkonu a škálovatelnosti.

Chcete vědět, jak jsme zvýšili návštěvnost o více než 1000 %?

Připojte se k více než 20 000 dalším, kteří dostávají náš týdenní zpravodaj se zasvěcenými tipy pro WordPress!

Přihlaste se k odběru

Podpora komunity

Vzhledem k tomu, že framework je nejoblíbenějším backendovým frameworkem Node.js, má nejvyšší počet komunitní podpory, zdrojů a balíčků pro jakékoli vývojové výzvy. Podpora od Google je také rozsáhlá, díky čemuž je framework oblíbenou volbou mezi vývojáři Node.js. Jeho open-source povaha dává vývojářům příležitost vytvářet rozšiřitelné balíčky a zdroje pro usnadnění vývoje nejen pro ně samotné, ale pro všechny ostatní, kteří kódují pomocí Express.js.

Výkonný systém směrování

Rámec má nejvýkonnější a nejrobustnější směrovací systém, který je přímo z výroby a pomáhá vaší aplikaci reagovat na požadavek klienta prostřednictvím konkrétního koncového bodu.

Se systémem směrování v Express.js můžete rozdělit svůj nabubřelý systém směrování do spravovatelných souborů pomocí instance směrovače rámce.

Systém expresního směrování je užitečný při správě struktury vaší aplikace tím, že seskupuje různé cesty do jediné složky/adresáře.

Vývojáři vytvářejí lépe udržovatelné kódy seskupováním funkcí se směrovačem Express a vyhýbáním se opakování.

Middleware

Express.js je rámec obsahující řadu middlewaru pro vytvoření bezproblémového procesu vývoje.

Middleware jsou kódy, které se spouštějí předtím, než požadavek HTTP dosáhne obslužné rutiny trasy nebo než klient obdrží odpověď, což dává frameworku možnost spustit typický skript před nebo po požadavku klienta.

Pomocí middlewaru mohou vývojáři zapojit skripty k zachycení toku aplikace, například vývojáři mohou použít middleware ke kontrole, zda je uživatel úspěšně přihlášen nebo odhlášen.

Jak funguje Express.js

Vzhledem k tomu, že Express.js používá model klient-server k přijímání požadavků uživatelů a odesílání zpětných odpovědí klientovi, jeho fungování se příliš neliší od toho, jak fungují samy jiné populární rámce, jako je Laravel.

Když uživatel odešle požadavek ze svého webového prohlížeče zadáním webové adresy, prohlížeč odešle požadavek HTTP aplikaci/serveru (mnoho aplikací vytvořených pomocí Express.js je hostováno někde v cloudu).

Server obdrží požadavek prostřednictvím jedné ze svých cest a zpracuje jej pomocí řadiče, který odpovídá požadované trase.

Po zpracování odešle server odpověď zpět klientovi pomocí HTTP, protože se jedná o komunikační protokol tam a zpět.

Odezvou vrácenou klientovi může být standardní text, dynamická stránka HTML, kterou prohlížeč zpracuje a zobrazí krásnou webovou stránku, nebo data JSON, se kterými budou vývojáři frontendu pracovat, aby zobrazili informace na webové stránce.

Potýkáte se s výpadky a problémy s WordPress? Kinsta je hostingové řešení navržené tak, aby vám šetřilo čas! Podívejte se na naše funkce

Vytvořme jednoduchý server, který bude naslouchat příchozím požadavkům z konkrétní adresy URL a čísla portu pomocí Express.js:

const express = require('express')
const app = express()
const port = 4000

app.get('/', (request, response) => {
  response.send('Testing Hello World!')
})

app.listen(port, () => {
  console.log(`Test app listening at http://localhost:${port}`)
})

Jedná se o jednoduchý server Express.js, který bude naslouchat příchozím požadavkům na http://localhost:4000/ a vrátí textovou odpověď „Testing Hello World! “.

Jak vytvořit aplikaci Express.js

Nyní vytvoříme ukázkovou aplikaci v reálném světě pomocí nového Express.js 5.0. Chcete-li začít, vytvořte adresář pro vaši novou aplikaci a nainstalujte následující balíčky:

mkdir first-express-app
cd first-express-app

npm install [email protected] --save

Dále vytvořte v kořenovém adresáři soubor index.js a vložte do něj následující:

touch index.js

Po nastavení serveru, jak je ukázáno výše, vytvoříme Úkoly pole, které obsahuje všechny naše úkoly, které mají být vráceny uživateli v závislosti na volaném koncovém bodu.
Přidejte následující kód do index.js soubor:

const express = require("express");
const app = express();
const port = 3000;
app.listen(port, () => {
  console.log(`Test app listening at http://localhost:${port}`)
})
const todos = [
  {
    title: "Todo 1",
    desc: "This is my first Todo",
    completed: true,
  },
  {
    title: "Todo 2",
    desc: "This is my second Todo",
    completed: true,
  },

  {
    title: "Todo 3",
    desc: "This is my third Todo",
    completed: true,
  },

  {
    title: "Todo 4",
    desc: "This is my fourth Todo",
    completed: true,
  },

  {
    title: "Todo 5",
    desc: "This is my fifth Todo",
    completed: true,
  },
];
// Data source ends here

Dále vytvoříme koncový bod pro načtení všech Todos uložené na našem serveru:

app.get("/todos", (request, response) => {
  response.status(200).json(todos);
});

Dále koncový bod pro načtení jednoho úkolu na základě ID z úkolu:

app.get("/todos/:id", (request, response) => {
  response
    .status(200)
    .json({ data: todos.find((todo) => todo.id === request.params.id) });
});

Nyní koncový bod pro uložení nového todo :

app.post("/todos", (request, response) => {
  todos.push(request.body);
  response.status(201).json({ msg: "Todo created successfully" });
});

Dále koncový bod pro aktualizaci existujícího todo pomocí ID :

app.put("/todos/:id", (request, response) => {
  const todo = todos.find((todo) => todo.id === request.params.id);
  if (todo) {
    const { title, desc, completed } = request.body;
    todo.title = title;
    todo.desc = desc;
    todo.completed = completed;
    response.status(200).json({ msg: "Todo updated successfully" });
    return;
  }
  response.status(404).json({ msg: "Todo not found" });
});

Nakonec vytvoříme koncový bod pro smazání jednoho todo na základě ID :

app.delete("/todos/:id", (request, response) => {
  const todoIndex = todos.findIndex((todo) => (todo.id = request.params.id));
  if (todoIndex) {
    todos.splice(todoIndex, 1);
    response.status(200).json({ msg: "Todo deleted successfully" });
  }
  response.status(404).json({ msg: "Todo not found" });
});

Tento fragment kódu ukazuje, jak implementovat funkci DELETE v Express.js. Shromažďuje ID úkolu pomocí parametrů a hledá v poli odpovídající ID a smaže je.

Testování aplikace Express.js

Nyní je čas otestovat naši novou aplikaci Express.js!

Spuštěním následujícího příkazu otestujte naše nově vyvinuté REST API s Postmanem a ujistěte se, že máme správná data:

node index.js

Postmana si můžete stáhnout z oficiálních stránek a spustit test níže. Tady to máte. Chcete-li se dozvědět více, doporučujeme vám vytvořit další funkce pomocí přístupu, o kterém jsme hovořili v článku, a rozšířit své znalosti o Express.js

Shrnutí

Express.js je nejoblíbenější framework v ekosystému Node.js a není těžké pochopit proč. Nabízí širokou škálu výhod a funkcí, z nichž můžete těžit.

Díky mělké křivce učení Express.js je velmi jednoduché a snadné začít. Abstrahuje nepotřebné nebo nechtěné funkce webových aplikací a poskytuje vám tenkou vrstvu základních funkcí, které umožňují flexibilitu.

A co víc, protože rámec Express.js je základem Node.js, znalost Express.js vám automaticky poskytuje slušný přehled o dalších populárních rámcích. Tyto znalosti vám mohou pomoci učinit zásadní rozhodnutí o vytváření obchodní logiky, který rámec použít kromě Express.js a kdy použít výchozí nebo uživatelské balíčky.

Co plánujete s Express.js dále budovat? Dejte nám vědět v sekci komentářů.