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查询界面

前端调用接口

你可能感兴趣的:(GraphQL+MongoDB+Express后端接口)