Pengkomputeran Pinggir dengan Cloudflare Workers & Deno · Pelajaran

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.

Pelajaran 3 daripada 313 langkah

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:

  • 400 Permintaan Tidak Sah, isi tidak sah
  • 401 Tidak Dibenarkan, pengesahan tiada
  • 404 Tidak Ditemui
  • 422 Entiti Tidak Boleh Diproses, pengesahan semantik gagal
  • 500 Ralat 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 safeParse Zod
  • 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.

Percuma untuk bermula

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

  1. Mereka Bentuk API RESTful
  2. Penghalaan & Perisian Tengah
  3. Pengesahan dan Pengendalian Ralat
← Kembali ke Pengkomputeran Pinggir dengan Cloudflare Workers & Deno