⊗jsrxPmSDIM 37 of 57 menu

Installation af MSW til arbejde med serverdelen i Redux

I de foregående lektioner foretog vi flere yderligere ændringer i vores applikation. Nu er vi nødt til at håndtere serveren, som vores applikation vil udveksle data med.

Vi vil ikke have en rigtig server, så vi vil blot simulere arbejdet med den ved at bruge det fantastiske værktøj Mock Service Worker. Mock Service Worker (MSW) er et værktøj til simulering af API'er, som bruger en standardiseret Service Worker API, designet til at opsnappe anmodninger på netværksniveauet. MSW vil generere fiktive svar (responses) på vores anmodninger (requests). Og, som udviklerne hævder, er værktøjet så effektivt og fleksibelt, at efter fejlfinding med mocks (som ikke kræver nogen speciel oprettelse i applikationen), kan applikationen sættes i drift med en allerede rigtig ekstern server. Dokumentationen for den er ret omfattende, og hvis du bliver interesseret i MSW, kan du læse den på den officielle hjemmeside.

Lad os gå videre til installation af MSW. For at gøre dette åbner vi vores projekt med produkter og indtaster i terminalen:

npm install msw --save-dev

For at MSW skal fungere, skal vi også oprette og kopiere mockServiceWorker.js til en offentlig mappe. Ofte er det mappen public. Vi har en tom mappe public, lad os kopiere den derind. For at gøre dette, kør følgende kommando i terminalen og accepter derefter brugen af public:

npx msw init public

Lad os nu kigge i public, der skulle være dukket op et genereret script kaldet mockServiceWorker.js. Start nu vores applikation med produkter og indtast i browserens adresselinje http://localhost:5173/mockServiceWorker.js (da vores applikation kører på port 5173). Kan du se i browserens vindue, at indholdet af filen mockServiceWorker.js blev vist? Så er alt fint, lad os gå videre.

Dernæst, lad os i mappen src oprette mappen api, og i den filen server.js, hvor vi vil skrive serverkoden. Åbn nu server.js og importer funktionen setupWorker fra den installerede MSW-bibliotek:

import { setupWorker } from 'msw/browser'

Nedenfor i filen opretter vi variablen worker og eksporterer den:

export const worker = setupWorker()

Og nu, lad os åbne filen main.jsx og importere vores worker derind:

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

Nu tilkobler vi den til vores applikation. For at gøre dette, wrapper vi koden, som vi bruger til at oprette roden af vores React-applikation, i en funktion, vi kalder den main og tilføjer en funktion til at starte workeren som den første linje. Selvfølgelig glemmer vi ikke at kalde main selv. Den fulde kode efter alle importlinjerne vil nu se sådan ud:

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

Nu er vi sikre på, at vores applikation ikke begynder at fungere før (og sender anmodninger ;) ), end workeren er startet.

Lad os starte vores applikation og åbne browserens udviklerkonsol. Hvis du kan se teksten '[MSW] Mocking enabled.' i den, så har du gjort det godt og har installeret alt korrekt!!!

Åbn din applikation med studerende. Efter at have gennemgået materialet i denne lektion, skal du installere Mock Service Worker til din applikation.

Opret filen server.js, og opret i den en worker. Tilkobl workeren til applikationen i main.js, som vist i lektionen. Sørg for, at alt fungerer.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis