我的 Express 应用程序中有以下代码
router.get('/auth/userInfo', this.validateUser, (req, res) => {
res.json(req.user);
});
我的 IDE 似乎在抱怨这个错误
错误 TS2339:类型“请求”上不存在属性“用户”。
当我编译我的打字稿代码时,它似乎抛出了这个错误。有什么想法为什么会发生这种情况吗?
我们有一个用 Express 和 Typescript 编写的大型 API,这就是我们处理此类场景的方式:
我们将请求定义保存在一个文件中:
import { Request } from "express"
export interface IGetUserAuthInfoRequest extends Request {
user: string // or any other type
}
然后在我们编写控制器函数的文件中:
import { Response } from "express"
import { IGetUserAuthInfoRequest } from "./definitionfile"
app.get('/auth/userInfo', validateUser, (req: IGetUserAuthInfoRequest, res: Response) => {
res.status(200).json(req.user); // Start calling status function to be compliant with Express 5.0
});
请注意,“user”不是 Express 的 Request 对象中本身可用的属性。确保您使用的中间件将此类属性添加到请求对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)