Не могу получить доступ к требованию из контекста
Я использую Koa.js с сервером Apollo apollo-server-koa
,
Я отлаживал { req }
и значение не определено. Я следовал за документацией, но все еще не понял. Даже если я получу доступ к req.headers.authorization
и поместите это в заголовок HTTP графического интерфейса:
{
"authorization": "bla"
}
значение по-прежнему undefined
,
app.ts:
import cors from "@koa/cors";
import Koa from "koa";
import config from "./config/environtment";
import server from "./server";
const PORT: number = config.port;
async function bootstrap() {
try {
const app: Koa = new Koa();
server.applyMiddleware({ app });
app
.use(cors())
.listen(PORT, () =>
console.log(
`Server running on http://localhost:${PORT}${server.graphqlPath}`,
),
);
} catch (error) {
console.error(error);
}
}
bootstrap();
server.ts:
import { ApolloServer } from "apollo-server-koa";
import typeDefs from "./graphql/schema";
import resolvers from "./graphql/resolvers";
import context from "./graphql/context";
export default new ApolloServer({
typeDefs,
resolvers,
context,
});
context.ts
export default ({ req }) => {
console.log(req) // return undefined.
return {
test: "test",
};
};
1 ответ
Решение
Документы относятся к apollo-server
, который использует apollo-server-express
под капотом. Я верю в apollo-server-koa
параметры передаются в объекте с ctx
поле, которое содержит контекст коа. Поэтому должно работать следующее:
export default ({ ctx }) => {
console.log(ctx.request)
console.log(ctx.response)
return {};
};