0Pricing
TypeScript Academy · Lezione

Tipizzazione dei gestori del router, Request/Response

Tipizzi i gestori delle route Express: params, query e corpi JSON; invii risposte tipizzate con res.json e DTO riutilizzabili.

Tipizzazione dei gestori del router, Request/Response è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 3 lezioni in totale.

Introduzione

Obiettivo: configurare una piccola API Express con tipi rigorosi. Tipizzerà i params, la query e i body JSON delle route, quindi restituirà JSON tipizzato con res.json.

  • Interfacce DTO
  • Request<P, Res, Body, Q>
  • res.json tipizzato

Configurazione del server

Inizializzi Express e abiliti il parsing JSON. Mantenga l'endpoint di health ridotto all'essenziale e tipizzato con Request/Response.

import express, { Request, Response } from "express"

const app = express()
app.use(express.json())

app.get("/", (_req: Request, res: Response) => {
  res.type("text/plain").send("OK")
})

app.listen(3000, () => console.log("http://localhost:3000"))

Parametri e query

Tipizzi esplicitamente ogni posizione: Params, Query e ResBody. Il completamento automatico aiuta a evitare refusi.

import { Request, Response } from "express"

type Params = { id: string }
 type Query = { verbose?: "1" | "0" }
 type ResBody = { id: string; name: string; details?: string }

export function getUser(req: Request<Params, ResBody, unknown, Query>, res: Response<ResBody>) {
  const { id } = req.params
  const { verbose } = req.query
  const body: ResBody = { id, name: "Ada", details: verbose === "1" ? "Loves math" : undefined }
  return res.status(200).json(body)
}

Body e response tipizzati

Annoti il body per POST/PUT, oltre a una response tipizzata. I DTO fungono anche da documentazione.

import { Request, Response } from "express"

type CreateUserBody = { name: string }
 type CreateUserRes = { id: string; name: string }

export function createUser(req: Request<{}, CreateUserRes, CreateUserBody>, res: Response<CreateUserRes>) {
  const { name } = req.body
  const result: CreateUserRes = { id: "u_1", name }
  return res.status(201).json(result)
}

Collegamento delle route

Componga handler piccoli e tipizzati. I parametri della route vengono validati confrontandoli con il template (ad es. :id).

import express from "express"
import { getUser } from "./getUser"
import { createUser } from "./createUser"

const app = express()
app.use(express.json())

app.get("/users/:id", getUser)
app.post("/users", createUser)

app.listen(3000, () => console.log("http://localhost:3000"))

Suggerimenti

Suggerimenti:

  • Mantenga i DTO ridotti all'essenziale e li riutilizzi tra gli handler.
  • Preferisca valori letterali di un'unione per i valori vincolati della query.
  • Restituisca codici di stato precisi e JSON tipizzato.

Verifica della tipizzazione di Express

Verifica rapida: come si tipizza un handler Express con parametri e body JSON?

Riepilogo

Riepilogo: ha tipizzato parametri delle route, query, body e response. Lo stesso pattern si estende a router e middleware.

Domande Frequenti

La lezione «Tipizzazione dei gestori del router, Request/Response» è gratuita?

Sì — il testo completo di «Tipizzazione dei gestori del router, Request/Response» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 3 lezioni in totale.

Cosa imparerò in «Tipizzazione dei gestori del router, Request/Response»?

Tipizzi i gestori delle route Express: params, query e corpi JSON; invii risposte tipizzate con res.json e DTO riutilizzabili. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Tipizzazione dei gestori del router, Request/Response»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Tipizzazione dei gestori del router, Request/Response
  2. Validazione degli schemi con zod e inferenza in TS
  3. Middleware degli errori e tipi Result
← Torna a TypeScript Academy