Kuxazululiwe: isibambi se-async esicacile

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.

Okuthunyelwe okuhlobene:

Shiya amazwana