2017-09-09 9 views
1

내가 표준 급행 서버가 내부 요청 개체에 액세스하는 방법?어떻게 <pre><code>const server = express(); server.use('/graphql', bodyParser.json(), graphqlExpress({ schema })); </code></pre> <p>질문은 GraphQL</p>를 사용하여 (아폴로 서버-Express를 사용하여) GraphQL 확인자

const typeDefs = ` 
    type User { 
     id: String, 
     name: String, 
     role: Int 
    } 
    type Query { 
     user(id: String): User, 
     users: [User] 
    } 
`; 

const resolvers = { 
    Query: { 
     user: (_, args, context, info) => users.find(u => u.id === args.id), 
     users: (_, args, context, info) => users 
    } 
} 

module.exports = makeExecutableSchema({typeDefs, resolvers}); 

답변

4

요청 객체가 컨텍스트를 통해 액세스해야합니다 나는 여기에 가져온 스키마가 일부 특정 쿼리

에 JWT를 확인합니다. 당신은 다음과 같이 당신의 컨텍스트를 정의하기 위해 graphqlExpress 미들웨어에 전달 된 옵션을 수정할 수 있습니다 : 나는 express-graphql을 알고

server.use('/graphql', bodyParser.json(), graphqlExpress(req => ({ 
    schema, 
    context: { user: req.user } 
})) 

이 옵션에 정의되어 있지 않은 경우 실제 상황과 같은 요청을 사용 - 아폴로의 미들웨어는 아주 잘 작동 할 수 있습니다 동일한 방법이지만 문서에 대해서는 분명하지 않습니다.

마지막으로 컨텍스트는 확인자 함수에 전달 된 세 번째 매개 변수로 사용할 수 있습니다.