学习 GraphQL 项目教程
learning-graphqlAn attempt to learn GraphQL项目地址:https://gitcode.com/gh_mirrors/le/learning-graphql
1. 项目的目录结构及介绍
learning-graphql/
├── README.md
├── package.json
├── src/
│ ├── index.js
│ ├── schema.js
│ ├── resolvers.js
│ ├── data/
│ │ ├── db.js
│ │ └── schema.sql
├── config/
│ ├── default.json
│ └── production.json
└── public/
└── index.html
README.md
: 项目说明文件。package.json
: 项目依赖和脚本配置文件。src/
: 源代码目录。index.js
: 项目入口文件。schema.js
: GraphQL 模式定义文件。resolvers.js
: 解析器定义文件。data/
: 数据相关文件。db.js
: 数据库连接配置文件。schema.sql
: 数据库模式文件。
config/
: 配置文件目录。default.json
: 默认配置文件。production.json
: 生产环境配置文件。
public/
: 静态文件目录。index.html
: 前端入口文件。
2. 项目的启动文件介绍
src/index.js
是项目的启动文件,主要负责以下任务:
- 导入必要的模块和配置。
- 创建 HTTP 服务器。
- 配置 GraphQL 中间件。
- 启动服务器并监听指定端口。
const express = require('express');
const { ApolloServer } = require('apollo-server-express');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');
const db = require('./data/db');
const app = express();
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req }) => ({ db })
});
server.applyMiddleware({ app });
app.listen({ port: 4000 }, () =>
console.log(`🚀 Server ready at http://localhost:4000${server.graphqlPath}`)
);
3. 项目的配置文件介绍
config/
目录下包含项目的配置文件,主要用于不同环境的配置管理。
default.json
: 默认配置文件,包含通用的配置项。production.json
: 生产环境配置文件,包含生产环境特定的配置项。
// config/default.json
{
"port": 4000,
"db": {
"host": "localhost",
"user": "root",
"password": "",
"database": "graphql_db"
}
}
// config/production.json
{
"port": 8080,
"db": {
"host": "production-db-host",
"user": "prod_user",
"password": "prod_password",
"database": "prod_graphql_db"
}
}
这些配置文件通过 config
包进行加载和管理,确保项目在不同环境下能够正确运行。
learning-graphqlAn attempt to learn GraphQL项目地址:https://gitcode.com/gh_mirrors/le/learning-graphql