参考:https://juejin.im/post/5a49e5ccf265da430d585cfd
实现目标
前端调用
前端向同一个URL发送携带graphQL查询语句的常见POST/GET请求, 返回的数据根据graphQL查询语句不同由graphQL的schema配置等不同从MongoDB数据库中查询得到相应的数据.
// 前端接口调用示例
$.ajax({
url: '/graphql',
data: {
query: `query{
student{
id
name
sex
age
}
},
success:function (res){ console.log(res) }
})
})
启动API接口server
采用express(or koa等常用server框架)结合nodeJS启动一个server
Tips: 单文件使用babel-polyfill便捷转码ES6
require('babel-core/register')({
'presets': [
'stage-3',
["latest-node", { "target": "current" }]
]
})
require('babel-polyfill')
require('./server')
MongoDB配置&&连接&&CURD
官方的定义
Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.
原理:
安装相应操作系统版本的MongoDB软件并启动后, 可以通过mongodb命令访问启动的数据库, 可以进行CURD操作. 对于Mongoose来说, MongoDB就是启动了一个服务, Mongoose使用mongodb
这一协议来连接启动的MongoDB数据库服务, 通过Mongoose方法来操作MongoDB数据库.
- MongoDB中数据模型对应关系型数据库中的表, 传统关系型数据库中定义表结构对应此处MongoDB(非关系型数据库)定义数据模型
- Mongoose是用来操作MongoDB数据库的一个工具库, Mongoose提供
schema()
方法来创建数据的模型(对应关系型数据库中定义表头字段和字段类型这一步),model()
方法根据schema来创建model
配置路由&&关联MongoDB
操作数据的控制器
控制器概念:
控制器即是封装的一些操作数据(CURD)的方法(控制器), 其作用是关联前端API接口及传递的参数和MongoDB数据库数据关联关系.
实现路由&&提供API接口
配置路由, 每个路由对应相应的控制器