⊗jsrxPmSDIM 37 of 57 menu

MSW:n asentaminen palvelinpuolen työskentelyyn Reduxissa

Edellisillä oppitunneilla teimme useita lisämuutoksia sovelluksessamme. Nyt meidän on selvitettävä palvelimesta, jota sovelluksemme tulee käyttämään datan vaihtamiseen.

Meillä ei ole oikeaa palvelinta, joten me simuloimme yksinkertaisesti työskentelyn kanssa, käyttämällä siistiä työkalua Mock Service Worker. Mock Service Worker (MSW) on API:n simuloimisen työkalu, joka käyttää standardoitua Service Worker -API:ta, suunniteltu sieppaamaan kyselyjä verkkotasolla. MSW tulee generaamaan valevastauksia (responses) meidän kyselyihimme (requests). Ja, kuten kehittäjät väittävät, työkalu on niin tehokas ja joustava, että debuggaamisen jälkeen mockien kanssa (jotka sovelluksessa ei tarvitse luoda erikseen), sovellus voidaan laittaa toimintaan jo oikean ulkoisen palvelimen kanssa. Dokumentaatio sitä varten on melko laaja, ja jos kiinnostut MSW:stä, voit lukea siitä viralliselta verkkosivustolta.

Siirrytään asentamaan msw. Varten tämän avaamme projektimme tuotteiden kanssa ja terminaalissa syötämme:

npm install msw --save-dev

Jotta msw toimii, meidän on myös luotava ja kopioitava mockServiceWorker.js johonkin julkiseen hakemistoon. Usein se on kansio public. Meillä on tyhjä kansio public, kopioidaan se sinne. Varten tämä käynnistä terminaalissa komento ja sitten hyväksy käyttö public:

npx msw init public

Nyt katsotaan public, sinne pitäisi ilmestyä generoitu skripti mockServiceWorker.js. Nyt käynnistetään sovelluksemme tuotteiden kanssa ja osoiteriville selain syötämme http://localhost:5173/mockServiceWorker.js (koska sovelluksemme toimii 5173 portissa). Näetkö selainikkunassa näytettiin sisältö tiedostosta mockServiceWorker.js? Tarkoittaa kaikki hienosti, mennään eteenpäin.

Seuraavaksi luodaan kansioon src kansio api, ja siellä tiedosto server.js, jossa kirjoitamme palvelimen koodia. Nyt avataan server.js ja tuodaan siihen funktio setupWorker asennetusta msw-kirjastosta:

import { setupWorker } from 'msw/browser'

Alapuolelle tiedostoon luomme muuttujan worker ja viemme sen:

export const worker = setupWorker()

Ja nyt avataan tiedosto main.jsx ja tuodaan siihen workerimme:

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

Nyt liitetään se sovellukseemme. Varten tämä koodi, jolla luomme juuren React-sovelluksestamme, käärimme funktioon, nimetään se main ja ensimmäisellä rivillä lisätään siihen funktio käynnistys workerille. Tietenkin emme unohda kutsua ja itse main. Täysi koodi kaikkien rivien jälkeen tuontien näyttää nyt tältä:

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

Nyt olemme varmoja, että sovelluksemme ei ala toimia ennen (ja lähettää kyselyjä ;) ), kuin worker käynnistyy.

Käynnistetään sovelluksemme ja avataan selain kehittäjäkonsoli. Jos näet siinä tekstin '[MSW] Mocking enabled.', niin olet huippu ja asensit kaiken oikein!!!

Avaa sovelluksesi opiskelijoiden kanssa. Tutkittuasi tämän oppitunnin materiaalin, asenna Mock Service Worker sovellukseesi.

Luo tiedosto server.js, ja siinä luo worker. Liitä worker sovellukseen main.js:ssa, kuten oppitunnilla näytetään. Varmista, että kaikki toimii.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää