Kā lietot async/gaidīt Express
Vai esat ievērojuši, ka Express pieprasījumu apstrādātājos rakstāt daudz asinhronā koda? Tas ir normāli, jo jums ir jāsazinās ar datu bāzi, failu sistēmu un citām API.
Ja jums ir tik daudz asinhronā koda, tas palīdz izmantot Async/gaidīt. Tas padara jūsu kodu vieglāk saprotamu.
Šodien es vēlos pastāstīt, kā lietot async/gaidīt Express pieprasījumu apstrādātājā.
Piezīme: Pirms turpināt, jums jāzina, kas Async/gaidīt ir.
avast kontā piesakieties
Izmantojot Async/gaidīt ar pieprasījumu apstrādātāju
Izmantot Async/gaidīt , jāizmanto | _+_ | atslēgvārdu, definējot pieprasījumu apstrādātāju. (Piezīme: šos pieprasījumu apstrādātājus sauc par kontrolieriem. Es labāk tos saucu par pieprasījumu apstrādātājiem, jo pieprasījumu apstrādātāji ir skaidrāki).
async
Kad esat ieguvis | _+_ | atslēgvārdu, jūs varat | _+_ | kaut ko uzreiz savā kodā.
app.post('/testing', async (req, res) => { // Do something here });
Async kļūdu apstrāde
Pieņemsim, ka vēlaties izveidot lietotāju, izmantojot POST pieprasījumu. Lai izveidotu lietotāju, jums jāievada | _+_ | un | _+_ | adrese. Jūsu mangustu shēma izskatās šādi:
google chrome fonta maiņa
async
Šeit ir jūsu pieprasījumu apstrādātājs:
await
Pieņemsim, ka nosūtāt serverim pieprasījumu, kuram nav e -pasta adreses.
app.post('/testing', async (req, res) => { const user = await User.findOne({ email: req.body.email }); });
Šī pieprasījuma rezultātā rodas kļūda. Diemžēl Express nevarēs tikt galā ar šo kļūdu. Jūs saņemsiet šādu žurnālu:
Lai apstrādātu kļūdu asinhronā funkcijā, vispirms jānosaka kļūda. To var izdarīt ar | _+_ |.
firstName
Tālāk jūs nododat kļūdu Express kļūdu apstrādātājam, izmantojot | _+_ | arguments.
email
Ja vēl neesat uzrakstījis pielāgotu kļūdu apstrādātāju, Express jūsu vietā apstrādās kļūdu, izmantojot noklusējuma kļūdu apstrādātāju. (Lai gan es iesaku jums uzrakstīt pielāgotu kļūdu apstrādātāju. Jūs varat uzzināt vairāk par to
Express noklusējuma kļūdu apstrādātājs:
- Iestatiet HTTP statusu uz 500
- Nosūtiet īsziņas atbildi atpakaļ pieprasītājam
- Reģistrējiet teksta atbildi konsolē
Es izmantoju Pastnieku, lai nosūtītu pieprasījumu uz savu serveri. Šeit ir teksta atbilde no servera.
izņemt no coinbase uz paypal
Ievērojiet 500 HTTP statusa žurnālu šajā attēlā. Tas man saka, ka Express noklusējuma apstrādātājs mainīja HTTP statusu uz 500 . Žurnāls ir no Morgan. E detalizēti runāja par Morganu [šeit] (https://zellwk.com/blog/middlewares).
mortal kombat (2021) pilna filma bez maksas
Divu vai vairāku asinhronizācijas kļūdu apstrāde
Ja jārīkojas ar diviem | _+_ | paziņojumus, jūs varētu uzrakstīt šo kodu:
const userSchema = new Schema({ email: { type: String, required: true, unique: true }, firstName: { type: String, required: true } });
Tas nav vajadzīgs. Ja | _+_ | rezultātā rodas kļūda, pieprasījums nekavējoties tiks nosūtīts kļūdu apstrādātājam. Jūs neizraisītu zvanu uz | _+_ |. Ja | _+_ | rodas kļūda, | _+_ | nebūtu izraisījis kļūdu.
Tas nozīmē: kļūdu apstrādātājam tiks nosūtīta tikai viena kļūda. Tas arī nozīmē, ka mēs varam ietīt visus | _+_ | paziņojumi ONE | _+_ | paziņojums, apgalvojums.
app.post('/signup', async (req, res) => { const { email, firstName } = req.body; const user = new User({ email, firstName }); const ret = await user.save(); res.json(ret); });
Satīrīšana
Ir žēl, ka ir | _+_ | paziņojumu katrā pieprasījumu apstrādātājā. Tie liek pieprasījumu apstrādātājam šķist sarežģītākam, nekā tam vajadzētu būt.
Vienkāršs veids ir mainīt | _+_ | solījumā. Tas jūtas draudzīgāks.
fetch('/signup', { method: 'post' headers: { 'Content-Type': 'application/json' } body: JSON.stringify({ firstName: 'Zell' }) }
Bet tas ir sīks darbs rakstīt | _+_ | katram Express apstrādātājam. Mēs varam to abstrahēt iesaiņojuma funkcijā. Un mēs varam pievienot šo iesaiņojuma funkciju katram pieprasījumu apstrādātājam
java projektu idejas iesācējiem
try/catch
Express Async apstrādātājs
Jums nav jāraksta | _+_ | kodu katru reizi, kad rakstāt ātro lietotni. Aleksejs Bazhenovs ir izveidojis paketi ar nosaukumu ātrs asinhronizētājs kas veic darbu nedaudz stabilākā veidā. (Tas nodrošina | _+_ | vienmēr ir pēdējais arguments).
Lai izmantotu | _+_ |, tā vispirms jāinstalē:
app.post('/signup', async (req, res) => { try { const { email, firstName } = req.body; const user = new User({ email, firstName }); const ret = await user.save(); res.json(ret); } catch (error) { console.log(error); } });
Izmantojiet to savā lietotnē:
next
Man nepatīk rakstīt | _+_ |. Tas ir diezgan garš. Mans acīmredzamais risinājums ir saīsināt | _+_ | līdz | _+_ |.
#izteikt #mezglu-js