Houdini GraphQL 项目教程
houdiniThe "disappearing" GraphQL client项目地址:https://gitcode.com/gh_mirrors/hou/houdini
1. 项目的目录结构及介绍
Houdini GraphQL 项目的目录结构如下:
houdini/
├── src/
│ ├── schema/
│ │ └── schema.graphql
│ ├── resolvers/
│ │ ├── Query.js
│ │ └── Mutation.js
│ ├── models/
│ │ └── User.js
│ ├── config/
│ │ └── db.js
│ └── index.js
├── package.json
└── README.md
目录结构介绍
src/
: 项目的源代码目录。schema/
: 存放 GraphQL 的 schema 文件。schema.graphql
: 定义 GraphQL 的类型、查询和变更。
resolvers/
: 存放 GraphQL 的解析器。Query.js
: 定义查询操作的解析器。Mutation.js
: 定义变更操作的解析器。
models/
: 存放数据模型。User.js
: 用户数据模型。
config/
: 存放配置文件。db.js
: 数据库连接配置。
index.js
: 项目的入口文件。
package.json
: 项目的依赖和脚本配置。README.md
: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件是 src/index.js
。该文件主要负责启动 GraphQL 服务器,并加载必要的配置和模块。
src/index.js
文件内容
const { ApolloServer } = require('apollo-server');
const typeDefs = require('./schema/schema');
const resolvers = require('./resolvers');
const db = require('./config/db');
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req }) => ({ db, req }),
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
启动文件介绍
- 引入
ApolloServer
模块,用于创建 GraphQL 服务器。 - 引入
schema
和resolvers
模块,分别定义 GraphQL 的类型和解析器。 - 引入
db
模块,用于数据库连接。 - 创建
ApolloServer
实例,并传入typeDefs
和resolvers
。 - 启动服务器,并输出服务器地址。
3. 项目的配置文件介绍
项目的配置文件主要存放在 src/config/
目录下,其中最重要的是 db.js
文件,负责数据库的连接配置。
src/config/db.js
文件内容
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/houdini', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', () => {
console.log('Connected to database');
});
module.exports = db;
配置文件介绍
- 引入
mongoose
模块,用于 MongoDB 数据库连接。 - 使用
mongoose.connect
方法连接到本地 MongoDB 数据库。 - 监听数据库连接事件,输出连接状态。
- 导出数据库连接对象
db
,供其他模块使用。
以上是 Houdini GraphQL 项目的目录结构、启动文件和配置文件的介绍。希望这些内容能帮助你更好地理解和使用该项目。
houdiniThe "disappearing" GraphQL client项目地址:https://gitcode.com/gh_mirrors/hou/houdini