Apollo Server的gql标签和schema.gql文件都用于定义GraphQL的类型和查询。它们的区别在于:
示例代码:
const { gql } = require('apollo-server');
const typeDefs = gql`
type Query {
hello: String
}
`;
module.exports = typeDefs;
示例代码:
schema.gql文件中的内容:
type Query {
hello: String
}
在Apollo Server的配置中加载schema.gql文件:
const { ApolloServer } = require('apollo-server');
const fs = require('fs');
const schema = fs.readFileSync('./schema.gql', 'utf8');
const server = new ApolloServer({ typeDefs: schema });
server.listen().then(({ url }) => {
console.log(`Server ready at ${url}`);
});
总结来说,gql标签是一种将GraphQL类型和查询嵌入到JavaScript代码中的方式,而schema.gql文件是一种将GraphQL类型和查询定义在独立文件中的方式。选择使用哪种方式取决于个人或团队的偏好和项目的需求。