⊗jsrxPmSDGRS 43 of 57 menu

Изпращане на данни от сървъра чрез GET заявка в Redux

И така, имаме база данни. Първото нещо, което ще направим при стартирането на нашето Redux приложение, е да получим данните за продуктите от сървъра. За целта трябва от нашето приложение да изпратим GET заявка. Нека я обработим от страна на сървъра.

Нека отворим нашето приложение с продукти, а в него файла server.js. За да работим с HTTP заявки, трябва да импортираме във файла няколко инструмента от msw, нека го направим:

import { http, HttpResponse, delay } from 'msw'

Също така веднага нека направим корекции за реалната ситуация, тоест възможни забавяния в мрежата. Нека стойността на нашето изкуствено забавяне да бъде 2 секунди, за да видим как се зареждат данните. Нека я напишем след const PRODS_PER_SELLER = 2:

const ARTIFICIAL_DELAY_MS = 2000

А сега в края на файла, преди експорта на worker, ще създадем масив за API обработчици на заявки:

export const handlers = []

И след това в квадратните скоби ще напишем първия обработчик за прихващане на GET заявка за продукти:

export const handlers = [http.get()]

Като първи параметър на http.get ще подадем някакъв фалшив адрес, например '/fakeServer/products', а като втори - асинхронен callback:

export const handlers = [http.get('/fakeServer/products', async () => {})]

Сега ще напишем кода за този callback. С негова помощ ще извлечем всички продукти от базата данни. Тук също ще използваме функцията serializeProduct, чийто код написахме в предишния урок. Нека я подадем в map. След това ще направим забавяне (все едно мрежата е бавна) и ще върнем в response обекти с данните за продуктите като JSON:

export const handlers = [ http.get('/fakeServer/products', async () => { const products = db.product.getAll().map(serializeProduct) await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(products) }), ]

И последно. Написахме първия handler за нашия worker, нека подадем на този worker масива handlers. За целта нека поправим последния ред код във файла на:

export const worker = setupWorker(...handlers)

Отворете вашето приложение със студенти, а в него файла server.js. Импортирайте във файла посочените инструменти от msw. След като изучите материала от този урок, създайте празен масив от обработчици за прихващане на заявки. Напишете в него код за обработчик на GET заявка за студенти. Като път нека имате '/fakeServer/students'.

В края на файла не забравяйте да подадете масива от обработчици handlers на worker-а.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне