Ukubhala indatshana eyinkimbinkimbi enjalo mayelana nesibambi se-async ye-Express ngale fomethi kungase kudinge incazelo ende. Njengokwesicelo sakho, ngizozama ukukuminyanisa ukuze kulingane nale nkundla.
Isibambi se-async se-Express siyi-middleware yokusingatha amaphutha nokuhlukile emizila ye-Express ku-Node.js. Kwenza ikhodi yakho ibe lula futhi kusize ekugwemeni ukuphinda kusetshenziswe okuningi. Ngokwesiko, sisebenzisa i-try-catch kuyo yonke imizila ukuze sibambe amaphutha kodwa le ndlela ingenza ikhodi iphindaphindeke futhi ibe budedengu. Isibambi se-async Express sinikeza enye indlela yokuhlanza.
const express = require('express'); const AsyncHandler = require('express-async-handler'); const router = express.Router(); router.get('/', AsyncHandler(async (req, res) => { const data = await someAsyncFunction(); res.json(data); })); module.exports = router;
Lena ikhodi ye-JavaScript eqondile engenisa amaphakheji we-express and express-async-handler. Isetha umzila isebenzisa umsebenzi we-express.Router(). Bese ichaza isicelo se-GET emzileni, esisingathwa umsebenzi we-AsyncHandler.
Kumazwibela ekhodi, ungase uzibuze ukuthi umsebenzi we-AsyncHandler ngowani. Yebo, i-AsyncHandler iyisici esibalulekile esivela kuphakheji ye-'express-async-handler'. Lo msebenzi ugoqa umzila wakho futhi ubambe noma yimaphi amaphutha avelayo, uwadlulisele ku-Express yakho yokusingatha i-middleware.
Manje ake sihlukanise lesi sinyathelo ngesinyathelo:
1. Sibiza umsebenzi we-AsyncHandler nesibambi sethu somzila njengengxabano.
2. Ngaphakathi kwesibambi somzila, siphawule umsebenzi njenge-async.
3. Sibe sesisebenzisa igama elingukhiye lokulinda ukuze sishayele i-someAsyncFunction ebuyisela isithembiso.
4. Uma isithembiso sixazululeka, sigcina umphumela kokuguquguquka kwedatha bese sikuthumela emuva empendulweni njengo-json.
5. Uma isithembiso sinqaba noma amaphutha enzeka phakathi nalokhu kusebenza abanjwa yi-AsyncHandler futhi adlulisele phansi iketango le-middleware.
Ukubaluleka kwe-async/ukulinda ku-JavaScript
Async/ukulinda iyindlela yesimanje yokuphatha imisebenzi evumelanayo ku-JavaScript. Kwenza ikhodi yakho ye-asynchronous ibukeke njengekhodi evumelanayo, okulula ukuyiqonda nokuyigcina. Ukuze uqonde ukuthi isebenza kanjani kulabhulali yesibambi se-express-async, udinga ukuqonda kahle uhlelo olungenantambo ku-JavaScript.
I-Async/ait ikuvumela ukuthi usebenze neZithembiso ngendlela enethezeke kakhudlwana. Ukusebenzisa i-try/catch ungakwazi ukuphatha amaphutha njengoba nje uwasingatha ngekhodi ehambisanayo.
I-Express ne-Middleware
I-Express iwuhlaka lweseva yewebhu ye-Node.js - yenza izinto eziningi zibe lula njengokuphatha izicelo ze-HTTP futhi inikeza inani elibalulekile lokuguquguquka ngesakhiwo sayo se-middleware.
I-Middleware imisebenzi ekwazi ukufinyelela isicelo, impendulo, kanye nomsebenzi olandelayo we-middleware emjikelezweni wokuphendula wesicelo. Bangakwazi ukusebenzisa noma iyiphi ikhodi, baguqule isicelo kanye nezinto zokuphendula futhi baqede umjikelezo wokuphendula isicelo. I-Express-async-handler i-middleware esiza ukuphatha okuhlukile emizileni ye-asynchronous express.
[b]Khumbula[/b], uma usebenzisana nokusebenza kwe-async emizileni yakho ye-Express, ungase ufune ukusebenzisa isibambi se-express-async noma indlela efanayo ukuze ugcine ikhodi yakho ihlanzekile futhi kulula ukuyiphatha. Uma ungaziphathi lezi zimo, kungase kuphumele ekunqatshweni kweSithembiso okungasingathwa okungase kubangele ukuthi inqubo yakho ye-Node.js iphahlazeke.
Ngigxile kuphakheji ye-express-async-handler kulesi sihloko, kodwa izimiso ziyasebenza nakwenye i-Node.js middleware futhi. Ukuqonda indlela yokuphatha i-asynchronous logic ngokuhlanzekile kuyingxenye eyinhloko yokuthuthukiswa kwe-JavaScript yesimanje.