GraphQL+MongoDB+Express后端接口

參考: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接口

配置路由, 每個路由對應相應的控制器

關聯GraphQL

定義GraphQL Schema

配置GraphQL查詢界面

前端調用接口

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容