在 Apollo Server 中设置响应头可以通过使用中间件来完成。下面是一个示例代码,演示了如何在 Apollo Server 中设置响应头:
const { ApolloServer, gql } = require('apollo-server');
// 定义GraphQL模式
const typeDefs = gql`
type Query {
hello: String
}
`;
// 定义GraphQL解析器
const resolvers = {
Query: {
hello: () => 'Hello, world!',
},
};
// 创建Apollo服务器
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req, res }) => {
// 设置响应头
res.setHeader('Access-Control-Allow-Origin', '*');
return { req, res };
},
});
// 启动服务器
server.listen().then(({ url }) => {
console.log(`Server is running at ${url}`);
});
在上述示例中,我们通过在 Apollo Server 的 context
选项中设置响应头。context
函数接收一个包含请求和响应对象的参数,我们可以在这个函数中调用 res.setHeader
来设置响应头。
在此示例中,我们将 Access-Control-Allow-Origin
头设置为 *
,以允许跨域请求。你可以根据自己的需求设置其他的响应头。
请注意,这个示例代码仅用于演示目的,实际应用中可能需要根据安全性和其他因素对响应头进行更具体的设置。