【问题标题】:Property 'body' does not exist on type 'Request'“请求”类型上不存在属性“正文”
【发布时间】:2017-11-03 15:42:54
【问题描述】:

Request 类型的 req 变量对于属性 body 没有 intellisense。这是因为打字吗?

import { Request, Response } from 'express'
import { ok, bad } from './responses'

export const signIn: async (req: Request, res: Response) => {
    try {
        const { name, pword } = req.body // body is not recognized
        const data = auth.signIn(name, password)
        ok(res, data)
    } catch (error) {
        bad(res, error)
    }
}

【问题讨论】:

    标签: node.js express typescript asp.net-web-api typescript-typings


    【解决方案1】:

    body-parser 已从 express 4 中删除到单独的项目中, 所以不会有任何关于它的类型定义。

    我是这样用的:

    import * as bodyParser from 'body-parser';
    
    let router: Router = express.Router();
    router.use(bodyParser.text());
    
    (req: Request, res: Response) => {
        let address = req['body'];
    }
    

    【讨论】:

    • 我认为bodyParser.json() - 是更常见的用例。
    • 是的,我忘记了,req['body'] 与 req.body 相同。但形式 req.body 更面向 js。
    【解决方案2】:

    而不是

    typings install express --save-dev
    

    我做了

    npm install @typings/express --save-dev
    

    它给了我'req.body'

    【讨论】:

    • 谢谢!知道我错过了什么! ;) 或者yarn add @types/express
    猜你喜欢
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2021-01-21
    • 2016-05-17
    • 2021-01-09
    • 2021-07-10
    相关资源
    最近更新 更多