ちょっと、そこ!
リクエストの本文を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
がExpress Requestオブジェクトにネイティブに存在せず、body-parserのために追加されるためです。
残念ながら、DefinitelyTypedバージョンのbody-parserは、提案された回避策では機能しません。 したがって、ここにbodyを追加するか、DefinitelyTyped / body-parserを更新する必要があります。
理にかなっています。また、デフォルトのジェネリックを使用して、変更を壊さずにこの機能を含める方法があると思います。例:
interfare Request<B = any, Q = any, P = any, C = any> {
body: B;
query: Q;
params: P;
cookies: C;
}
最も参考になるコメント
理にかなっています。また、デフォルトのジェネリックを使用して、変更を壊さずにこの機能を含める方法があると思います。例: