⊗jsrxPmSDIM 37 of 57 menu

Inštalácia msw pre prácu so serverovou časťou v Reduxe

Na predchádzajúcich lekciách sme urobili niekoľko ďalších zmien v našej aplikácii. Teraz sa potrebujeme vysporiadať so serverom, s ktorým bude naša aplikácia komunikovať a vymieňať si dáta.

Skutočný server mať nebudeme, preto jednoducho simulujeme prácu s ním, pomocou super nástroja Mock Service Worker. Mock Service Worker (MSW) je nástroj na simuláciu API, ktorý používa štandardizované API Service Worker, navrhnuté na zachytávanie požiadaviek na sieťovej úrovni. MSW bude generovať fiktívne odpovede (responses) na naše požiadavky (requests). A čo viac, ako tvrdia vývojári, nástroj je tak efektívny a flexibilný, že po ladení s mockmi (pre ktoré v aplikácii netreba vytvárať nič špeciálne), môže byť aplikácia spustená na produkciu so skutočným externým serverom. Dokumentácia k nemu je pomerne rozsiahla, a ak vás MSW zaujme, môžete si ju prečítať na oficiálnej webstránke.

Poďme prejsť k inštalácii msw. Pre to otvoríme náš projekt s produktami a v termináli zadáme:

npm install msw --save-dev

Pre fungovanie msw potrebujeme tiež vytvoriť a skopírovať mockServiceWorker.js do nejakého verejného priečinka. Často je to priečinok public. My máme prázdny priečinok public, poďme ho tam skopírovať. Preto spustite v termináli príkaz a potom súhlaste s použitím public:

npx msw init public

Teraz sa pozrieme do public, tam by sa mal objaviť vygenerovaný skript mockServiceWorker.js. Teraz spustíme našu aplikáciu s produktami a v adresnom riadku prehliadača zadáme http://localhost:5173/mockServiceWorker.js (keďže naša aplikácia beží na porte 5173). Vidíte, že v okne prehliadača sa zobrazil obsah súboru mockServiceWorker.js? Znamená to, že všetko je vporiadku, ideme ďalej.

Ďalej vytvorme v priečinku src priečinok api a v ňom súbor server.js, v ktorom budeme písať kód servera. Teraz otvorme server.js a importujme do neho funkciu setupWorker z nainštalovanej knižnice msw:

import { setupWorker } from 'msw/browser'

Nižšie v súbore vytvorme premennú worker a exportujme ju:

export const worker = setupWorker()

A teraz otvorme súbor main.jsx a importujme do neho nášho workera:

import { worker } from './api/server'

Teraz ho pripojme k našej aplikácii. Pre to kód, pomocou ktorého vytvárame koreň našej React aplikácie, obalíme funkciou, nazvime ju main a na prvom riadku do nej pridajme funkciu spustenia pre workera. Samozrejme, nezabudnime volať aj samotnú main. Úplný kód po všetkých riadkoch s importom bude teraz vyzerať takto:

async function main() { await worker.start({ onUnhandledRequest: 'bypass' }) ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <Provider store={store}> <App /> </Provider> </React.StrictMode> ) } main()

Teraz sme si istí, že naša aplikácia nezačne fungovať skôr (a odosielať požiadavky ;) ), ako sa spustí worker.

Spustíme našu aplikáciu a otvorme v prehliadači konzolu pre vývojárov. Ak v nej vidíte text '[MSW] Mocking enabled.', tak ste šikovní a všetko ste nainštalovali správne!!!

Otvorte vašu aplikáciu so študentmi. Po oboznámení sa s materiálom tejto lekcie, nainštalujte Mock Service Worker pre vašu aplikáciu.

Vytvorte súbor server.js a v ňom vytvorte workera. Pripojte worker k aplikácii v main.js, ako je ukázané v lekcii. Uistite sa, že všetko funguje.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť