我将 Koa.js 与 Apollo Server 的apollo-server-koa
.
我已经调试了{ req }
并且该值未定义。我已经按照文档进行了操作,但仍然没有任何线索。即使我访问req.headers.authorization
并将其放在graphql gui的HTTP标头上:
{
"authorization": "bla"
}
值还是undefined
。
应用程序:
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();
服务器.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,
});
上下文.ts
export default ({ req }) => {
console.log(req) // return undefined.
return {
test: "test",
};
};
这些文档特定于apollo-server
,它apollo-server-express
在幕后使用。我相信apollo-server-koa
,这些选项是在一个对象中传递的,该对象具有一个ctx
包含 Koa上下文的字段。所以以下应该工作:
export default ({ ctx }) => {
console.log(ctx.request)
console.log(ctx.response)
return {};
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句