Null при подключении GraphQL с MongoDB - PullRequest
0 голосов
/ 03 июля 2018

Я подключаю GraphQL к MongoDB, но результат равен null. Помоги мне !

Файл index.js:

const { graphql } = require('graphql');
const { MongoClient } = require('mongodb');
const assert = require('assert');
const readline = require('readline');

const mySchema = require('./schema/main.js');
const rli = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const MONGO_URL = 'mongodb://127.0.0.1:27017/test';

MongoClient.connect(MONGO_URL, { useNewUrlParser: true }, (err, db) => {
    assert.equal(null, err);
    console.log('Connected to MongoDB server');
    rli.question('Client Request: ', inputQuery => {
        graphql(mySchema, inputQuery, {}, { db }).then(result => {
            console.log('Server Answer: ', result.data);
            db.close(() => rli.close());
        });
    });
});


Файл main.js:

const {
    GraphQLSchema,
    GraphQLObjectType,
    GraphQLInt
} = require('graphql');

const queryType = new GraphQLObjectType({
    name: 'RootQuery',
    fields: {
        usersCount: {
            type: GraphQLInt,
            resolve: (_, args, { db }) => db.collection('users').count()
        }
    }
});

const mySchema = new GraphQLSchema({
    query: queryType
});

module.exports = mySchema;


И это результат:

Connected to MongoDB server
Client Request: { usersCount }
Server Answer:  { usersCount: null }

1 Ответ

0 голосов
/ 05 июля 2018

Из того, что я мог понять, объект db, который вы получаете от MongoClient connect callback, - это не ваш db объект, а объект client, поэтому Вы должны сначала позвонить

const db = client.db

см. Подключение к MongoDB

это то, что вы можете легко найти и исправить, если сможете отладить код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...