Pengesahan dan Pengendalian Ralat
Sahkan data permintaan masuk dan kembalikan respons ralat yang konsisten serta tersusun dengan baik dalam API tanpa pelayan yang dibina menggunakan Workers dan Deno.
Pengesahan dan Pengendalian Ralat ialah pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno percuma di CoddyKit. Ini ialah pelajaran 3 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 3 pelajaran.
Mengapa Mengesahkan Input?
Jangan sesekali mempercayai input klien. API yang kukuh mengesahkan setiap muatan masuk sebelum bertindak terhadapnya.
Pengesahan mencegah:
- Data rosak memasuki stor anda
- Ranap akibat medan yang tiada
- Isu keselamatan seperti suntikan
Di edge, pengesahan juga gagal dengan pantas, sekali gus menjimatkan CPU dan panggilan hiliran.
Menghurai Isi Permintaan
Kebanyakan API menerima JSON. Hurainya dengan selamat kerana JSON yang rosak akan menyebabkan ralat.
async function readJson(request) {
try {
return await request.json();
} catch {
return null;
}
}Pengesahan Medan Secara Manual
Untuk skema mudah, anda boleh melakukan pengesahan secara manual.
Semak medan dan jenis yang diperlukan sebelum meneruskan.
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;
}Pengesahan Skema dengan Zod
Untuk API yang lebih besar, pustaka skema seperti Zod (yang berjalan pada Worker dan Deno) lebih kemas serta menghasilkan output bertip.
import { z } from 'zod';
const UserSchema = z.object({
name: z.string().min(1),
age: z.number().int().positive()
});safeParse untuk Ralat Terkawal
Gunakan safeParse supaya pengesahan tidak pernah melemparkan ralat; sebaliknya, periksa hasilnya.
const result = UserSchema.safeParse(body);
if (!result.success) {
// result.error.issues describes what failed
}Bentuk Respons Ralat yang Konsisten
Kembalikan ralat dalam bentuk JSON yang boleh dijangka supaya klien boleh menghuraikannya dengan pasti.
function errorResponse(message, status, details) {
return new Response(
JSON.stringify({ error: message, details: details || null }),
{ status, headers: { 'Content-Type': 'application/json' } }
);
}Memilih Kod Status yang Betul
Padankan status HTTP dengan jenis kegagalan:
400Permintaan Tidak Sah, isi tidak sah401Tidak Dibenarkan, pengesahan tiada404Tidak Ditemui422Entiti Tidak Boleh Diproses, pengesahan semantik gagal500Ralat Pelayan Dalaman, tidak dijangka
Jaring Keselamatan try/catch
Bungkus pengendali dalam try/catch supaya lemparan yang tidak dijangka menjadi 500 yang kemas dan bukannya ranap.
export default {
async fetch(request, env) {
try {
return await handle(request, env);
} catch (err) {
return errorResponse('Internal Server Error', 500);
}
}
};Mengesahkan Parameter Pertanyaan dan Laluan
Isi bukan satu-satunya input yang tidak dipercayai; rentetan pertanyaan dan parameter laluan juga perlu disemak.
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);
}Elakkan Membocorkan Butiran Dalaman
Dalam persekitaran produksi, jangan sesekali menghantar jejak tindanan atau mesej ralat mentah kepada klien.
Catat ralat penuh secara dalaman, dan kembalikan mesej umum kepada pihak luar.
catch (err) {
console.error(err);
return errorResponse('Something went wrong', 500);
}Ringkasan Amalan Terbaik
Pengesahan dan pengendalian ralat yang kukuh bermaksud:
- Sahkan isi, pertanyaan dan parameter
- Gunakan pustaka skema untuk input kompleks
- Kembalikan bentuk ralat yang konsisten
- Pilih kod status yang betul
- Tangkap semua ralat dan sembunyikan butiran dalaman
Semakan Ringkas
Status HTTP manakah yang paling sesuai untuk permintaan yang JSON-nya terbentuk dengan betul tetapi gagal mematuhi peraturan pengesahan perniagaan?
Imbas Kembali
Kini anda mengesahkan input yang tidak dipercayai dan mengembalikan ralat yang kemas:
- Hurai isi dan parameter dengan selamat
- Lakukan pengesahan secara manual atau dengan
safeParseZod - Gunakan bentuk JSON ralat yang konsisten dan kod status yang betul
- Bungkus pengendali dalam try/catch dan sembunyikan butiran dalaman
Pengesahan yang boleh dipercayai membezakan API mainan daripada API bertaraf produksi.
Pelajari Pengkomputeran Pinggir dengan Cloudflare Workers & Deno dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 47
Soalan Lazim
Adakah pelajaran “Pengesahan dan Pengendalian Ralat” percuma?
Ya — teks penuh “Pengesahan dan Pengendalian Ralat” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, tingkat taraf kepada CoddyKit PRO. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Pengesahan dan Pengendalian Ralat”?
Sahkan data permintaan masuk dan kembalikan respons ralat yang konsisten serta tersusun dengan baik dalam API tanpa pelayan yang dibina menggunakan Workers dan Deno. Anda berlatih Pengkomputeran Pinggir dengan Cloudflare Workers & Deno menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengkomputeran Pinggir dengan Cloudflare Workers & Deno?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 3.
Berapa lamakah pelajaran “Pengesahan dan Pengendalian Ralat” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno ini?
Ya. Setiap pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mereka Bentuk API RESTful
- Penghalaan & Perisian Tengah
- Pengesahan dan Pengendalian Ralat