我在我的快速打字稿应用程序中输入我的请求时遇到了困难。我有这个控制器是安全的,passport-jwt
所以当一个路由被认证时,我尝试从 访问用户数据,req.user
并且假设有一个_id
.
const newPort = { ...req.body, user: req.user?._id };
此行产生错误:
[tsserver 2339] [E] Property '_id' does not exist on type 'User'.
我该如何解决这个问题?
编辑:创建了一个扩展类型的自定义Request
类型
import { Request, Response } from 'express';
interface User {
_id: string,
}
export interface MyRequest extends Request {
user: User
}
export type MyResponse = Response;
将其应用于管理 API 调用的控制器
import { IResponse, MyRequest, MyResponse } from '@interface';
export const Create = (req: MyRequest, res: MyResponse): void => {
Rx
.from(User.Create(req.body))
.subscribe(
(result: IResponse) => {
res.status(result.status).json(result.toJson());
},
(error) => {
res.status(error.status).json(error);
但是当我将它调用到我的快速路由器时。它显示一个错误。