【发布时间】:2019-01-30 17:25:46
【问题描述】:
我是 GraphQL 的新手,所以我想在 Express 服务器中获取 MySQL 的所有表数据,然后将其推送到 ReactJS。我该怎么做?
【问题讨论】:
标签: mysql reactjs express graphql
我是 GraphQL 的新手,所以我想在 Express 服务器中获取 MySQL 的所有表数据,然后将其推送到 ReactJS。我该怎么做?
【问题讨论】:
标签: mysql reactjs express graphql
将 Knex 连接到 (db/db.js) 中的数据库:
const config = require('../../config/config');
const knex = require('knex')(config.config);
module.exports = knex;
需要 GraphQL 和 Knex (DB):
const graphql = require('graphql');
const knex = require('./db/db');
const {
GraphQLObjectType,
GraphQLString,
GraphQLSchema,
GraphQLID,
GraphQLInt,
GraphQLList,
GraphQLNonNull
} = graphql;
假设您有一种图书类型:
// Your book type
const BookType = new GraphQLObjectType({
name: 'Book',
fields: () => ({
id: { type: GraphQLID },
name: { type: GraphQLString },
genre: { type: GraphQLString },
})
});
// Prepare query to get all books, I used Knex query builder with MySQL
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
books: {
type: new GraphQLList(BookType),
async resolve(parent, args){
const books = await knex('books');
return books;
}
},
}
});
【讨论】: