【问题标题】:Using Custom Entity inside Express Request Extension在 Express 请求扩展中使用自定义实体
【发布时间】:2022-01-24 20:36:54
【问题描述】:

我正在使用 express、typeORM 和 JWT 制作一个基本 API

我按照this question 将我的用户信息附加到我的中间件中的请求中,效果很好。

但我认为只保留我的 usersId 是不够的,所以我尝试保存整个 User TypeOrm 实体,但我立即收到以下错误:

Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.

所以基本上我有这个扩展

import { User } from "../entities/User";

declare namespace Express {
    export interface Request {
        user: User;
    }
}

当我使用它时,我收到以下错误

对我来说,这对我来说绝对没有意义,因为当我把它改成这样时:

declare namespace Express {
    export interface Request {
        user: string;
    }
}

效果很好

会不会有我遗漏的隐藏错误?这可能是框架级别的错误吗?

谢谢!

【问题讨论】:

    标签: typescript express jwt typeorm


    【解决方案1】:

    试试:

    import { Request, Response } from 'express';
    
    class User {
      name: string = '';
    }
    
    declare module 'express' {
      export interface Request {
        user: User;
      }
    }
    
    function controller(req: Request, res: Response) {
      const newUser = new User();
      req.user = newUser;
    }
    

    包版本:

    "express": "^4.17.1",
    "@types/express": "^4.17.11"
    

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 2017-11-23
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2021-01-12
      • 2021-01-07
      • 2018-10-14
      相关资源
      最近更新 更多