Привет!
почему бы не изменить тело запроса на T? таким образом я могу быть уверен, что содержит мой объект.
в строке express-serve-static-core/index.d.ts 438:
interface Request<T> extends http.IncomingMessage, Express.Request {
...
...
body: T
...
...
и я использую это так:
updateUser = (req: Request<User>, res: Response, next: NextFunction) => {
const userToUpdate = req.body;
...
...
}
Согласен, это должно быть изменено для людей, которые хотят ввести текст своего запроса, то же самое должно относиться к cookies
, params
, query
, @borisyankov , что вы думаете?
Я не ненавижу эту идею, но в то же время есть проблема с types/express, которая объясняет, что body
было опущено по какой-то причине. Причина в том, что body
изначально не существует в объекте экспресс-запроса, а добавляется из-за анализатора тела.
К сожалению, версия body-parser DefinitelyTyped не работает с предложенным обходным путем. Таким образом, либо здесь нужно добавить тело, либо нужно обновить DefinitelyTyped/body-parser.
Имеет смысл, также я думаю, что есть способ включить эту функцию, не нарушая изменений, используя дженерики по умолчанию, например:
interfare Request<B = any, Q = any, P = any, C = any> {
body: B;
query: Q;
params: P;
cookies: C;
}
Самый полезный комментарий
Имеет смысл, также я думаю, что есть способ включить эту функцию, не нарушая изменений, используя дженерики по умолчанию, например: