TypeScript Academy · Oppitunti

Express-pyyntöjen ja -vastausten tyypittäminen

Laajentakaa Express-tyyppejä tyypitettyjä reittiparametreja ja runkoja varten

Oppitunti 2/413 vaihetta

Express-pyyntöjen ja -vastausten tyypittäminen on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

Expressin TypeScript-tyypit ovat saatavilla @types/express-paketin kautta. Opi tekemään reiteistä tyyppiturvallisia.

Tyyppien asentaminen

Asenna Express ja sen tyyppimääritykset.
npm install express
npm install --save-dev @types/express

Reittien perustyypit

Tuo Request ja Response expressistä.
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
  res.json({ users: [] });
});

Tyypitetyt reittiparametrit

Tyypitä polkuparametrit Requestin geneeristen tyyppien avulla.
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
  const { id } = req.params;
});

Tyypitetty request body

Tyypitä request body RequestBody-geneerisen tyypin avulla.
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
  const { name, email } = req.body;
});

Tyypitetyt query-parametrit

Tyypitä query-merkkijonon parametrit.
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
  const page = parseInt(req.query.page ?? '1');
});

Requestin laajentaminen

Lisää Requestiin mukautettuja ominaisuuksia module augmentationin avulla.
declare global {
  namespace Express {
    interface Request { user?: User; }
  }
}

Tyypitetty Response

Määritä Response-geneerinen tyyppi JSON-bodyn tyypittämiseksi.
app.get('/me', (req: Request, res: Response<User>) => {
  res.json(req.user!); // response body must be User
});

Virheenkäsittelijöiden tyypit

Expressin virheenkäsittelijöillä on erityinen neljän parametrin allekirjoitus.
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(500).json({ error: err.message });
};

Routerin käyttö tyyppien kanssa

Tyypitä Router samalla tavalla kuin pääsovellus.
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});

Validointimiddleware

Käytä tyypitettyä middlewarea pyyntötyyppien validoimiseen ja tarkentamiseen.
function parseBody<T>(schema: ZodSchema<T>) {
  return (req: Request, res: Response, next: NextFunction) => {
    req.body = schema.parse(req.body);
    next();
  };
}

Pikatesti

Mikä on @types/expressin käytön tärkein hyöty TypeScript-projektissa?

Kertaus

Expressin Requestin ja Responsen tyypittäminen: tyypitä Request/Response-geneeriset tyypit parametreille, bodille ja query-parametreille. Laajenna Requestia module augmentationilla mukautettuja ominaisuuksia varten. Tyypitä middlewaret ja virheenkäsittelijät niiden erityisten allekirjoitusten mukaisesti.
Aloita maksutta

Opi TypeScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
101
Oppitunnit
352

Usein kysytyt kysymykset

Onko oppitunti ”Express-pyyntöjen ja -vastausten tyypittäminen” ilmainen?

Kyllä – oppitunnin ”Express-pyyntöjen ja -vastausten tyypittäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Express-pyyntöjen ja -vastausten tyypittäminen”?

Laajentakaa Express-tyyppejä tyypitettyjä reittiparametreja ja runkoja varten Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Express-pyyntöjen ja -vastausten tyypittäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?

Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. TypeScriptin käyttöönotto Node.js:n kanssa
  2. Express-pyyntöjen ja -vastausten tyypittäminen
  3. Tyypitetyt middlewaret ja virheenkäsittelijät
  4. Ympäristömuuttujat ja konfiguraation tyypittäminen
← Takaisin: TypeScript Academy