Definitelytyped: @tipos/objeto de cuerpo de solicitud expresa a T (genérico)

Creado en 5 jun. 2017  ·  3Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

¡Hola!

¿Por qué no cambiar el cuerpo de la Solicitud a T? de esa manera puedo estar seguro de lo que contiene mi objeto.

en express-serve-static-core/index.d.ts línea 438:

interface Request<T> extends http.IncomingMessage, Express.Request {
...
...
body: T
...
...

y lo uso así:

updateUser = (req: Request<User>, res: Response, next: NextFunction) => {
   const userToUpdate = req.body;
...
...
}

Comentario más útil

Tiene sentido, también creo que hay una manera de incluir esta función sin interrumpir los cambios mediante el uso de genéricos predeterminados, por ejemplo:

interfare Request<B = any, Q = any, P = any, C = any> {
  body: B;
  query: Q;
  params: P;
  cookies: C;
}

Todos 3 comentarios

De acuerdo, esto debe cambiarse para las personas que desean escribir el cuerpo de su solicitud, lo mismo debe aplicarse a cookies , params , query , @borisyankov , ¿qué opinas?

No odio esta idea, pero al mismo tiempo existe este problema de types/express que explica que body se omitió por una razón. Esa razón es que body no existe en el objeto Express Request de forma nativa, sino que se agrega debido al analizador de cuerpo.

Desafortunadamente, la versión DefinitelyTyped de body-parser no funciona con la solución que propusieron. Por lo tanto, se debe agregar el cuerpo aquí, o se debe actualizar DefinitelyTyped/body-parser.

Tiene sentido, también creo que hay una manera de incluir esta función sin interrumpir los cambios mediante el uso de genéricos predeterminados, por ejemplo:

interfare Request<B = any, Q = any, P = any, C = any> {
  body: B;
  query: Q;
  params: P;
  cookies: C;
}
¿Fue útil esta página
0 / 5 - 0 calificaciones