參考: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接口
配置路由, 每個路由對應相應的控制器