千家信息网

MySQL怎么向GraphQL迁移

发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,本篇内容介绍了"MySQL怎么向GraphQL迁移"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Gr
千家信息网最后更新 2024年10月24日MySQL怎么向GraphQL迁移

本篇内容介绍了"MySQL怎么向GraphQL迁移"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

GraphQL 是一个开源的图形数据库(基于Node.js实现), 中文文档: https://graphql.js.cool/

sequelize-auto 将 MySQL 数据库转变成模型

[node] sequelize-auto -h  -d  -u  -x [password] -p [port] --dialect [dialect] -c [/path/to/config] -o [/path/to/models] -t [tableName] -C 参数: -h, --host 主机地址 [必须] -d, --database 数据名 [必须] -u, --user 用户名 -x, --pass 密码 -p, --port 端口号 -c, --config 配置文件,参考: https://sequelize.readthedocs.org/en/latest/api/sequelize/ -o, --output 输出目录 -e, --dialect 数据库引擎: postgres, mysql, sqlite -t, --tables 需要导入的表 -T, --skip-tables 需要排除的表 -C, --camel 使用用驼峰命名法 -n, --no-write 不需要写入文件 -s, --schema 数据库结构

使用数据模型

这里是生成的一个示例模型:

/* jshint indent: 2 */  module.exports = function(sequelize, DataTypes) {   return sequelize.define('d_user', {     uid: {       type: DataTypes.INTEGER(11).UNSIGNED,       allowNull: false,       primaryKey: true     },     username: {       type: DataTypes.STRING(16),       allowNull: false,       defaultValue: ''     },     mobile: {       type: DataTypes.STRING(16),       allowNull: false,       defaultValue: ''     },     email: {       type: DataTypes.STRING(32),       allowNull: false,       defaultValue: ''     },     password: {       type: DataTypes.STRING(32),       allowNull: false,       defaultValue: ''     },     salt: {       type: DataTypes.STRING(8),       allowNull: false,       defaultValue: ''     },     updatedAt: {       type: DataTypes.INTEGER(10).UNSIGNED,       allowNull: false     }   }, {     tableName: 'user'   }); };

创建数据库模型:

const Sequelize = require('sequelize'); const Db = new Sequelize('数据库名', '用户名', '密码', { host: 'localhost', dialect: 'mysql' }) const User = Db.define('user', { uid: { type: Sequelize.INTEGER(11).UNSIGNED, allowNull: false, primaryKey: true }, username: { type: Sequelize.STRING(16), allowNull: false, defaultValue: '' }, mobile: { type: Sequelize.STRING(16), allowNull: false, defaultValue: '' }, email: { type: Sequelize.STRING(32), allowNull: false, defaultValue: '' }, password: { type: Sequelize.STRING(32), allowNull: false, defaultValue: '' }, salt: { type: Sequelize.STRING(8), allowNull: false, defaultValue: '' } }, { tableName: 'user', // 取消默认的时间戳, 否则会报 createdAt 不存在错误 timestamps: false }); Db.sync(); module.exports = { Db, User };

graphql-sequelize 转换 MySQL -> GraphQL 结构

const { GraphQLObjectType,GraphQLSchema,GraphQLList,GraphQLInt,GraphQLString } = require('graphql'); const { attributeFields, resolver } = require('graphql-sequelize'); const { Db, User } = require('./db');  userType = new GraphQLObjectType({   name: 'User',   description: 'A user',   fields: attributeFields(User) });  const Query = new GraphQLObjectType({   name: 'Query',   description: 'Root query object',   fields: () => {     return {       user: {         type: new GraphQLList(userType),         args: {           uid: {             type: GraphQLInt           },           email: {             type: GraphQLString           }         },         resolve(root, args) {           return Db.models.user.findAll({ where: args });         }       }     };   } });  const Schema = new GraphQLSchema({   query: Query });  module.exports = Schema;

启动服务器

const Express =require( 'express'); const GraphHTTP =require( 'express-graphql'); const Schema =require( './schema');  // Config const APP_PORT = 3000;  // Start const app = Express();  // GraphQL app.use('/graphql', GraphHTTP({   schema: Schema,   pretty: true,   graphiql: true }));  app.listen(APP_PORT, ()=> {   console.log(`App listening on port ${APP_PORT}`);

"MySQL怎么向GraphQL迁移"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 数据库 模型 内容 密码 文件 更多 用户 用户名 知识 结构 输出 实用 学有所成 接下来 主机 参数 口号 困境 图形 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 汽车网络技术 pdf 新乡市浩瀚网络技术有限公司 哈理工哪个专业是网络安全 惠普合资 网络安全 服务器防护安全注意事项 企业里常用的关系型数据库 数据库的技术拐点 方舟手游非官方服务器怎么开炫彩 长沙创华软件开发有限公司 张店绩效考核hr软件开发公司 核酸报告数据库会出问题吗 现场管理控制服务器主机 集中制小组+软件开发 数据库导入导出技巧 福建pdu服务器电源厂商有哪些 中国网络安全市场现状 下一代网络技术指的是什么 如何审核软件开发过程 畅捷通数据库怎么设置 国家医保平台服务器开小差 数据库表是哪个模式下的 华为查找手机提示连接服务器失败 数据库mysql如何做性能优化 人民日报互联网发展科技 轻松学网络技术 服务器管理器项 河北应用软件开发大概要多少钱 青岛软件开发应届生工资 三级数据库技术教材电子版 智能制造网络技术 教材
0