【问题标题】:express-jwt and express-graphql: error TS2339: Property 'user' does not exist on type 'Request'express-jwt 和 express-graphql:错误 TS2339:“请求”类型上不存在属性“用户”
【发布时间】:2019-06-25 00:15:40
【问题描述】:

我尝试让 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'

userexpress-jwt 添加到请求对象上。

我该如何解决这个问题?

【问题讨论】:

    标签: typescript express-jwt express-graphql


    【解决方案1】:

    用一个属性扩展 Express Request

    interface AuthRequest extends express.Request {
      user?: string
    }
    
    app.use(
      '/',
      expressGraphql((req: AuthRequest, res, graphQLParams) => ({
        schema,
        rootValue,
        context: {
          user: req.user
        }
      }))
    )
    

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 2019-01-21
      • 2016-08-13
      • 2017-12-20
      • 2016-11-14
      • 2017-10-24
      • 2021-08-10
      • 2018-11-17
      相关资源
      最近更新 更多