基礎知識
簡而言之,GraphQL 是一種描述如何請求數據的語法,通常用於客戶端向服務器請求數據。GraphQL 有三個主要特點:
- 允許客戶端精確指定所需數據。
- 可以更容易地從多個數據源聚合數據。
- 使用類型系統描述數據。

相關的信息可以去官網了解 http://graphql.cn/
這篇博客的文章主要目的是使用的graphql服務了解搭建一個真實項目基本結構,使用到的基本技術如下:
- 基於Nodejs,Typescript, Express
- 數據庫使用了Mongodb和Mysql
- apollo-server,
項目結構信息如下圖:

模塊大概功能介紹:
- common: 一些公用的功能如自定義的graphql scalar 文件上傳,文件管理,文件服務
- gql-system: 系統的一些表數據操作
- gql-system/system.gql: 把gql-system下的所有gql文件集合導出
- gql-system/system.resolver.ts: 把gql-system下的所有reolver文件集合導出
- gql-system/user: 用戶數據表操作,resolver 實現user.gql里面Query和Mutation的功能,user.gql代表Schema,user.ts是mongodb 的模型
- gql-game: 一個整體的數據操作,相當於把相關表的數據的功能組織在一起同上
- gql-mall:同上
- base.gql 基礎 scheam
- resolvers.ts 基本resolver組合其它resolve
- schema.ts 基本的schema 組合其它schema
- gql-system/user文件里面各文件相關功能(基本關系,user.gql描述文件,然后resolver實現功能,user.ts只是mondodb的模型):
以上是項目基本結構和基本代碼功能,最終的項目效果圖如下:
地址:http://localhost:8080/playground

地址:http://localhost:8080/voyage

源碼地址:https://files.cnblogs.com/files/lslgg/base-server.zip
ps:因為是mongodb 所以運行項目以后直接先添加用戶,然后登錄以后就可以操作其它表了。
