Validering og feilhåndtering
Valider innkommende forespørselsdata og returner konsistente, velstrukturerte feilsvar i serverless-API-er bygget med Workers og Deno.
Validering og feilhåndtering er en gratis leksjon i Edge computing med Cloudflare Workers og Deno på CoddyKit. Dette er leksjon 3 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Edge computing med Cloudflare Workers og Deno, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 3 leksjoner.
Hvorfor validere inndata?
Stol aldri på inndata fra klienten. Et robust API validerer alle innkommende data før det gjør noe med dem.
Validering forhindrer:
- At ødelagte data kommer inn i datalageret
- Krasj på grunn av manglende felt
- Sikkerhetsproblemer som injeksjon
På edge-miljøet stopper valideringen også tidlig, noe som sparer CPU og nedstrømskall.
Analysere forespørselskroppen
De fleste API-er godtar JSON. Analyser den på en trygg måte. Feilformatert JSON utløser et unntak.
async function readJson(request) {
try {
return await request.json();
} catch {
return null;
}
}Manuell feltvalidering
For enkle skjemaer kan De validere manuelt.
Kontroller obligatoriske felt og datatyper før De fortsetter.
function validateUser(body) {
const errors = [];
if (typeof body.name !== 'string') errors.push('name is required');
if (typeof body.age !== 'number') errors.push('age must be a number');
return errors;
}Skjemavalidering med Zod
For større API-er er et skjemabibliotek som Zod (som kjører på både Workers og Deno) ryddigere og gir typede resultater.
import { z } from 'zod';
const UserSchema = z.object({
name: z.string().min(1),
age: z.number().int().positive()
});safeParse for håndtering av feil
Bruk safeParse slik at valideringen aldri utløser et unntak. Inspiser resultatet i stedet.
const result = UserSchema.safeParse(body);
if (!result.success) {
// result.error.issues describes what failed
}Enhetlig format for feilresponser
Returner feil i et forutsigbart JSON-format slik at klienter kan tolke dem på en pålitelig måte.
function errorResponse(message, status, details) {
return new Response(
JSON.stringify({ error: message, details: details || null }),
{ status, headers: { 'Content-Type': 'application/json' } }
);
}Velge riktig statuskode
Tilpass HTTP-statusen til feiltypen:
400Bad Request, ugyldig kropp401Unauthorized, manglende autentisering404Not Found422Unprocessable Entity, semantisk valideringsfeil500Internal Server Error, uventet feil
Et sikkerhetsnett med try/catch
Pakk inn handlere i try/catch slik at et uventet unntak blir til en ryddig 500-respons i stedet for en krasj.
export default {
async fetch(request, env) {
try {
return await handle(request, env);
} catch (err) {
return errorResponse('Internal Server Error', 500);
}
}
};Validere spørrings- og banelparametere
Brødteksten er ikke den eneste upålitelige inndataen. Spørringsstrenger og baneparametere må også kontrolleres.
const url = new URL(request.url);
const page = Number(url.searchParams.get('page') || '1');
if (!Number.isInteger(page) || page < 1) {
return errorResponse('Invalid page', 400);
}Unngå å lekke interne detaljer
I produksjon må De aldri sende stakkspor eller rå feilmeldinger til klienter.
Logg hele feilen internt, og returner en generell melding eksternt.
catch (err) {
console.error(err);
return errorResponse('Something went wrong', 500);
}Oppsummering av anbefalte fremgangsmåter
God validering og feilhåndtering innebærer:
- Validere kropp, spørring og parametere
- Bruke et skjemabibliotek for komplekse inndata
- Returnere et enhetlig feilformat
- Velge riktige statuskoder
- Fange opp alt og skjule interne detaljer
Kort kontroll
Hvilken HTTP-status passer best for en forespørsel der JSON-en er korrekt formatert, men ikke oppfyller en regel for forretningsvalidering?
Oppsummering
De validerer nå upålitelige inndata og returnerer ryddige feilmeldinger:
- Analyser kropper og parametere på en trygg måte
- Valider manuelt eller med Zods
safeParse - Bruk et enhetlig JSON-format for feil og riktige statuskoder
- Pakk inn handlere i try/catch, og skjul interne detaljer
Pålitelig validering er det som skiller et leketøy-API fra et API klart for produksjon.
Lær deg Edge computing med Cloudflare Workers og Deno med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 47
Ofte stilte spørsmål
Er leksjonen «Validering og feilhåndtering» gratis?
Ja – hele teksten i «Validering og feilhåndtering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Edge computing med Cloudflare Workers og Deno-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 3 leksjoner.
Hva lærer jeg i «Validering og feilhåndtering»?
Valider innkommende forespørselsdata og returner konsistente, velstrukturerte feilsvar i serverless-API-er bygget med Workers og Deno. Du øver på Edge computing med Cloudflare Workers og Deno med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Edge computing med Cloudflare Workers og Deno?
Ingen tidligere erfaring er nødvendig. Edge computing med Cloudflare Workers og Deno på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 3.
Hvor lang tid tar leksjonen «Validering og feilhåndtering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Edge computing med Cloudflare Workers og Deno-leksjonen?
Ja. Alle Edge computing med Cloudflare Workers og Deno-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Utforming av RESTful API-er
- Ruting og middleware
- Validering og feilhåndtering