我是GraphQL的新手,所以我想在Express服务器中获取MySQL的所有表数据,然后将其推送到ReactJS。我该怎么做?
答案 0 :(得分:0)
将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;
}
},
}
});