⊗jsrxPmSDIM 37 of 57 menu

Namestitev MSW za delo z odjemalsko stranjo v Redux

V prejšnjih lekcijah smo naredili nekaj dodatnih sprememb v naši aplikaciji. Zdaj se moramo lotiti strežnika, s katerim se bo naša aplikacija izmenjevala podatke.

Pravega strežnika ne bomo imeli, zato bomo preprosto simulirali delo z njim z uporabo odličnega orodja Mock Service Worker. Mock Service Worker (MSW) je orodje za simulacijo API-ja, ki uporablja standardiziran API Service Worker, namenjen prestrezanju zahtev na omrežni ravni. MSW bo generiral lažne odzive (responses) na naše zahteve (requests). Poleg tega, kakor trdijo razvijalci, je orodje tako učinkovito in fleksibilno, da lahko po odpravljanju napak z mocki (za katere v aplikaciji ni potrebno ustvariti ničesar posebnega), aplikacijo zaženemo v delo z že pravim zunanjim strežnikom. Dokumentacija zanj je precej obsežna in, če se zanimate za MSW, jo lahko preberete na uradni spletni strani.

Pojdimo k namestitvi MSW. Za to odprimo naš projekt s produkti in v terminalu vpišimo:

npm install msw --save-dev

Za delovanje MSW moramo prav tako ustvariti in kopirati mockServiceWorker.js v neko javno mapo. Pogosto je to mapa public. Mi imamo prazno mapo public, kopirajmo jo tja. Za to zaženite v terminalu ukaz in nato privolite na uporabo public:

npx msw init public

Zdaj poglejmo v public, tam bi se moral pojaviti generirani skript mockServiceWorker.js. Zdaj zaženimo našo aplikacijo s produkti in v naslovno vrstico brskalnika vpišimo http://localhost:5173/mockServiceWorker.js (ker naša aplikacija deluje na 5173 vratih). Ali vidite v oknu brskalnika, da se je prikazala vsebina datoteke mockServiceWorker.js? Pomeni, da je vse odlično, pojdimo naprej.

Nato ustvarimo v mapi src mapo api, v njej pa datoteko server.js, v kateri bomo pisali kodo strežnika. Zdaj odprimo server.js in uvozimo vanj funkcijo setupWorker iz nameščene knjižnice MSW:

import { setupWorker } from 'msw/browser'

Spodaj v datoteki ustvarimo spremenljivko worker in jo izvozimo:

export const worker = setupWorker()

Zdaj pa odprimo datoteko main.jsx in vanj uvozimo naš worker:

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

Zdaj ga priklopimo k naši aplikaciji. Za to kodo, s pomočjo katere ustvarimo koren naše React aplikacije, ovijemo v funkcijo, poimenujmo jo main in kot prvo vrstico dodajmo vanj funkcijo zagon za worker. Seveda ne pozabimo poklicati tudi same main. Celotna koda po vseh vrsticah z uvozom bo zdaj videti tako:

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

Zdaj smo prepričani, da se naša aplikacija ne bo začela delovati prej (in pošiljati zahtevkov ;) ), kot se bo zagnal worker.

Zaženimo našo aplikacijo in odprimo v brskalniku konzolo za razvijalce. Če vidite v njej besedilo '[MSW] Mocking enabled.', potem ste odlični in ste vse namestili pravilno!!!

Odprite vašo aplikacijo s študenti. Po preučitvi gradiva te lekcije namestite Mock Service Worker za vašo aplikacijo.

Ustvarite datoteko server.js, v njej ustvarite worker. Pripniti worker k aplikaciji v main.js, kot je prikazano v lekciji. Prepričajte se, da vse deluje.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni