如何将GraphQL连接到MySQL

我已经使用快速cli来build立一个简单的快速项目,并遵循教程来创builddb.jsschema.js但在这一点上,我不能想到debugging这个错误/查看graphiql中的架构的任何部分文档。

 { "errors": [ { "message": "Schema must be an instance of GraphQLSchema. Also ensure that there are not multiple versions of GraphQL installed in your node_modules directory." } ] } 

App.js

 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var index = require('./routes/index'); var users = require('./routes/users'); var schema = require('./schema'); var graphqlHTTP = require('express-graphql'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', index); app.use('/users', users); app.use('/api', graphqlHTTP({schema, graphiql: true})); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app; 

db.js

 var Sequelize = require('sequelize'); var mysql = require('mysql'); var _ = require('lodash'); var Conn = new Sequelize('DB', 'Username', 'password', { host: 'DB IP', dialect: 'mysql' }); var Sectors = Conn.define('sectors', { name: { type: Sequelize.STRING, allowNull: false } }); Sectors.sync({force: true}).then(function () { // Table created return Sectors.create({ name: 'test' }); }); exports.default = Conn; 

Schema.js

 var { GraphQLSchema, GraphQLObjectType, GraphQLID, GraphQLString, GraphQLInt, GraphQLBoolean, GraphQLList, GraphQLNonNull } = require('graphql'); var Db = require('./db'); var Sectors = new GraphQLObjectType({ name: 'sectors', description: 'list of all the sectors', fields: () => { return { id: { type: GraphQLInt, resolve (sectors) { return sectors.id; } }, name: { type: GraphQLString, resolve (sectors) { return sectors.name; } } }; } }); var Query = new GraphQLObjectType({ name: 'Query', description: 'Root query object', fields: () => { return { sectors: { type: new GraphQLList(Sectors), args: { id: { type: GraphQLInt }, name: { type: GraphQLString } }, resolve (root, args) { return Db.models.sectors.findAll({ where: args }); } } }; } }); var Schema = new GraphQLSchema({query: Query}); exports.default = Schema;