需求:最近发现graphql能简化前后端到端开发,于是就查了些资料,想使用GraphQL实现查询Mysql与elasticsearch
-----平台配置
平台:CentOS7
服务器:NodeJs - 8.9.4
数据库:Mysql/ElasticSearch
规范: ES6 (需要在项目中配置es6规范,否则会报错)
使用graphql:
Mysql
1: 使用node + express 搭建服务器,在根目录下新建database目录,新建mysqldb.js
/** * use to connect * */ const Sequelize = require('sequelize'); const Conn = new Sequelize( 'bayes', 'root', 'Root@1234', { 'dialect': 'mysql', // 数据库使用mysql 'host': 'localhost', // 数据库服务器ip 'port': 3306, // 数据库服务器端口 'define': { // 字段以下划线(_)来分割(默认是驼峰命名风格) 'underscored': true } } ); const Novehicle = Conn.define("result_novehicle",{ id: { type: Sequelize.INTEGER, primaryKey: true, allowNull: false }, cameraid: { type: Sequelize.STRING, allowNull: true }, rtype: { type: Sequelize.STRING, allowNull: true }, entrytime: { type: Sequelize.STRING, allowNull: true }, leavetime: { type: Sequelize.STRING, allowNull: true }, ori_img: { type: Sequelize.STRING, allowNull: true }, img: { type: Sequelize.STRING, allowNull: true }, sex: { type: Sequelize.STRING, allowNull: true }, canopy: { type: Sequelize.STRING, allowNull: true }, headwear: { type: Sequelize.STRING, allowNull: true }, bicycletype: { type: Sequelize.STRING, allowNull: true }, has_object: { type: Sequelize.STRING, allowNull: true }, hair: { type: Sequelize.STRING, allowNull: true }, lower_type: { type: Sequelize.STRING, allowNull: true }, lower_color: { type: Sequelize.STRING, allowNull: true }, upper_type: { type: Sequelize.STRING, allowNull: true }, upper_color: { type: Sequelize.STRING, allowNull: true } },{ // 自定义表名 'freezeTableName': true, 'tableName': 'result_novehicle', // 是否需要增加