มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด
เขียนฟังก์ชันมิดเดิลแวร์ของ Express อย่างปลอดภัยด้านชนิด
มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ยินดีต้อนรับ
ลายเซ็นมิดเดิลแวร์
import { RequestHandler } from 'express';
const authMiddleware: RequestHandler = (req, res, next) => {
if (!req.headers.authorization) return res.status(401).json({});
next();
};NextFunction
import { Request, Response, NextFunction } from 'express';
function logger(req: Request, res: Response, next: NextFunction): void {
console.log(req.method, req.path);
next();
}ลายเซ็นตัวจัดการข้อผิดพลาด
import { ErrorRequestHandler } from 'express';
const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
res.status(err.status ?? 500).json({ message: err.message });
};คลาสข้อผิดพลาดแบบกำหนดเอง
class AppError extends Error {
constructor(public message: string, public status: number = 500) {
super(message);
}
}ตัวห่อหุ้มมิดเดิลแวร์แบบอะซิงโครนัส
function asyncHandler(fn: RequestHandler): RequestHandler {
return (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next);
}มิดเดิลแวร์ยืนยันตัวตนพร้อมแนบผู้ใช้
const authenticate: RequestHandler = async (req, res, next) => {
const user = await verifyToken(req.headers.authorization);
req.user = user; // requires module augmentation
next();
};มิดเดิลแวร์ตรวจสอบความถูกต้องด้วย Zod
function validate<T>(schema: ZodSchema<T>): RequestHandler {
return (req, res, next) => {
const result = schema.safeParse(req.body);
if (!result.success) return res.status(400).json(result.error);
req.body = result.data;
next();
};
}มิดเดิลแวร์ระดับเราเตอร์
router.use('/admin', authenticate, authorize('admin'));
router.get('/admin/users', asyncHandler(listUsers));มิดเดิลแวร์บันทึกข้อมูล
const requestLogger: RequestHandler = (req, _res, next) => {
console.log(`${req.method} ${req.path}`);
next();
};การลงทะเบียนตัวจัดการข้อผิดพลาดส่วนกลาง
app.use(requestLogger);
app.use('/api', apiRouter);
app.use(errorHandler); // must be lastตรวจสอบสั้น ๆ
สรุปทบทวน
คำถามที่พบบ่อย
บทเรียน “มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด”
เขียนฟังก์ชันมิดเดิลแวร์ของ Express อย่างปลอดภัยด้านชนิด คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า TypeScript กับ Node.js
- การระบุชนิดคำขอและการตอบกลับของ Express
- มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด
- ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า