typescript - express-jwt 和 express-graphql:错误 TS2339:“请求”类型上不存在属性“用户”
问题描述
我尝试让 express-jwt 和 graphql 在 typescript 中一起工作。
import * as express from 'express'
import * as expressGraphql from 'express-graphql'
import * as expressJwt from 'express-jwt'
import schema from './api/schemas'
import rootValue from './api/resolvers'
const app = express()
app.use(
expressJwt({
credentialsRequired: false,
secret: process.env.JWT_SECRET
})
)
app.use(
'/',
expressGraphql((req, res, graphQLParams) => ({
schema,
rootValue,
context: {
user: req.user
}
}))
)
我导入了相关类型@types/express
,@types/express-graphql
和@types/express-jwt
.
有一个打字稿错误:
error TS2339: Property 'user' does not exist on type 'Request'
user
由 .添加到请求对象上express-jwt
。
我该如何解决?
解决方案
Request
用一个属性扩展 Express
interface AuthRequest extends express.Request {
user?: string
}
app.use(
'/',
expressGraphql((req: AuthRequest, res, graphQLParams) => ({
schema,
rootValue,
context: {
user: req.user
}
}))
)
推荐阅读
- wordpress - 如何使用 gatsby-source-wordpress 加快获取 MediaItem 的速度?
- android - kotlin canvas.drawRect 在画布之外绘制
- reactjs - 如何将数据传递到 React 中的组件属性?
- arrays - MongoDB 将对象数组转换为字段值数组
- javascript - 多个函数的异步执行顺序,每个函数取决于最后一个
- jquery - 来自用户输入号码的 jquery ajax 调用以更新可用数量
- php - 用于自定义分类的 WordPress PHP 查询
- r - R quantstrat 期货示例 - “必须按顺序添加交易”
- android - 为什么我使用 Theme.MaterialComponents 时一切都是紫色的?
- c++ - 如何在 C++ 中使用 for 循环显示动态数组