0Pricing
TypeScript Academy · บทเรียน

การระบุชนิดคำขอและการตอบกลับของ Express

ขยายชนิดของ Express เพื่อระบุชนิดพารามิเตอร์เส้นทางและข้อมูลเนื้อหา

การระบุชนิดคำขอและการตอบกลับของ Express เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

Express มีชนิดสำหรับ TypeScript ผ่าน @types/express เรียนรู้วิธีทำให้เส้นทางปลอดภัยด้านชนิด

การติดตั้งชนิด

ติดตั้ง Express พร้อมคำจำกัดความชนิดของมัน
npm install express
npm install --save-dev @types/express

ชนิดเส้นทางพื้นฐาน

นำเข้า Request และ Response จาก express
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
  res.json({ users: [] });
});

พารามิเตอร์เส้นทางที่มีชนิดกำกับ

กำหนดชนิดพารามิเตอร์เส้นทางโดยใช้เจเนอริกกับ Request
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
  const { id } = req.params;
});

เนื้อหาคำขอที่มีชนิดกำกับ

กำหนดชนิดเนื้อหาคำขอด้วยเจเนอริก RequestBody
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
  const { name, email } = req.body;
});

พารามิเตอร์คำค้นหาที่มีชนิดกำกับ

กำหนดชนิดพารามิเตอร์สตริงคำค้นหา
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
  const page = parseInt(req.query.page ?? '1');
});

การขยาย Request

เพิ่มพร็อพเพอร์ตีแบบกำหนดเองให้ Request ผ่านการเพิ่มส่วนขยายโมดูล
declare global {
  namespace Express {
    interface Request { user?: User; }
  }
}

การตอบกลับที่มีชนิดกำกับ

เชื่อมเจเนอริกบน Response เพื่อกำหนดชนิดเนื้อหา JSON
app.get('/me', (req: Request, res: Response<User>) => {
  res.json(req.user!); // response body must be User
});

ชนิดตัวจัดการข้อผิดพลาด

ตัวจัดการข้อผิดพลาดของ Express มีลายเซ็นที่รับพารามิเตอร์สี่รายการโดยเฉพาะ
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(500).json({ error: err.message });
};

การใช้ Router พร้อมชนิด

กำหนดชนิดให้ Router ในลักษณะเดียวกับแอปหลัก
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});

มิดเดิลแวร์ตรวจสอบความถูกต้อง

ใช้มิดเดิลแวร์ที่มีชนิดกำกับเพื่อตรวจสอบและจำกัดชนิดของคำขอให้แคบลง
function parseBody<T>(schema: ZodSchema<T>) {
  return (req: Request, res: Response, next: NextFunction) => {
    req.body = schema.parse(req.body);
    next();
  };
}

ตรวจสอบสั้น ๆ

ประโยชน์หลักของการใช้ @types/express ในโครงการ TypeScript คืออะไร

สรุปทบทวน

การกำหนดชนิดให้ Request และ Response ของ Express: กำหนดชนิดเจเนอริกของ Request/Response สำหรับพารามิเตอร์ เนื้อหาคำขอ และคำค้นหา ขยาย Request ผ่านการเพิ่มส่วนขยายโมดูลเพื่อเพิ่มพร็อพเพอร์ตีแบบกำหนดเอง กำหนดชนิดมิดเดิลแวร์และตัวจัดการข้อผิดพลาดด้วยลายเซ็นเฉพาะของแต่ละชนิด

คำถามที่พบบ่อย

บทเรียน “การระบุชนิดคำขอและการตอบกลับของ Express” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การระบุชนิดคำขอและการตอบกลับของ Express” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การระบุชนิดคำขอและการตอบกลับของ Express”

ขยายชนิดของ Express เพื่อระบุชนิดพารามิเตอร์เส้นทางและข้อมูลเนื้อหา คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การระบุชนิดคำขอและการตอบกลับของ Express” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่า TypeScript กับ Node.js
  2. การระบุชนิดคำขอและการตอบกลับของ Express
  3. มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด
  4. ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า
← กลับไปที่ TypeScript Academy