⊗jsrxPmATDS 53 of 57 menu

Uchakataji wa Ombi la POST, Liliotumwa Kwa Kutumia Thunk katika Redux

Sisi pamoja tumepata data ya bidhaa na wauzaji kutoka kwa seva na kuionyesha kwenye programu. Lakini kwa kutumia thunk unaweza sio tu kupata, bali pia kutuma data. Hebu tujue jinsi ya kufanya hivyo.

Baada ya kuongeza bidhaa mpya, inabaki kwetu kwenye duka, yaani ndani ya programu yetu. Hebu tufanye hivi, ili bidhaa mpya ihifadhiwe kwenye seva.

Wacha tuanze na seva. Hapa itatubidi tuchakate sio GET, bali ombi la POST, kwani kwenye seva sasa data ya bidhaa itawasili, ambayo tutaihifadhi pale.

Wacha tufungue programu yetu ya bidhaa, na kwenye hayo faili server.js. Tutaipata ndani yake safu handlers na tuongeze kichakataji kingine kwa ombi la POST. Hapa tuta kubali pia mwili wa ombi, kwa hivyo katika kitendo kilichorudiwa tunapaswa kupitisha request:

http.post('/fakeServer/products', async ({ request }) => {})

Sasa kwenye mabano ya curly tuandike msimbo wa kitendo chetu kilichorudiwa. Kwa kuanza tutatofautisha data ya ombi na katika kesi ya hitilafu tutatuma kutoka kwa seva jibu, kwamba hatukuweza kuhifadhi data na na hali 500:

http.post('/fakeServer/products', async ({ request }) => { const data = await request.json() if (data.content === 'error') { await delay(ARTIFICIAL_DELAY_MS) return new HttpResponse('kosa la kuokoa seva', { status: 500, headers: { 'Content-Type': 'application/json', }, }) } })

Ikiwa data iko sawa, basi kwenye hifadhi data tutampata muuzaji kulingana na kitambulisho, ambacho kimefika kwenye ombi na tumuandikie muuzaji huyo kwenye data (data ya muuzaji hata hivyo yetu pia imehifadhiwa kwenye seva ;) ):

const seller = db.seller.findFirst({ where: { id: { equals: data.seller } }, }) data.seller = seller

Ifuatayo kwenye hifadhi data tutaunda kwa hii bidhaa kitu na athari. Na sasa, ukiwa na sehemu zote muhimu za bidhaa, tuunde kwenye hifadhi data na bidhaa yenyewe:

data.reactions = db.reaction.create() const product = db.product.create(data)

Wacha tuweke kucheleweshwa na kwenye mstari wa mwisho wa msimbo kwa kitendo chetu kilichorudiwa turudishe jibu na bidhaa:

await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(serializeProduct(product))

Hapa tumemaliza kabisa na seva na hatuturejeei tena.

Kwa njia, jingine la kufaa. Baada ya mstari export const worker = setupWorker(...handlers) unaweza kuongeza msimbo ufuatao:

worker.listHandlers().forEach((handler) => { console.log(handler.info.header) })

Na sasa utaweza kuona matokeo ya kila kichakataji kinachofanya kazi kwenye konsoli ya kivinjari.

Bila shaka seva yetu sio ya kweli na ikiwa tuta walazimisha kusasisha ukurasa kwenye kivinjari, basi vitu vyetu vyote vipya vya bidhaa vitatoweka.

Fungua programu yako ya wanafunzi. Fungua ndani yake faili server.js. Ongeza kwenye safu handlers uchakataji wa ombi la POST. Kwenye mwili wa ombi hili utakubali data ya mwanafunzi mpya aliyeongezwa.

Kwenye mwili wa kitendo kilichorudiwa kwa http.post yako Fungua data na katika kesi ya hitilafu tuma jibu linalofanana.

Ikiwa yote iko sawa, basi tafuta kwenye hifadhi data mwalimu kulingana na kitambulisho kilichopatikana na uandike yeye kwenye data. Andika pia kwenye data, kitu kilichoundwa kulingana na hifadhi data votes.

Kulingana na data iliyokusanywa unda kitu student na mwanafunzi mpya na umtume kwenye jibu la seva.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa