Данные преобразователя Console.log в graphql

Я пытаюсь console.info преобразователя в приложении graphql. Часть graphiql работает (я могу запустить сервер и увидеть панель управления graphql, а затем использовать корневой запрос для получения результатов в панели браузера), но я не могу console.info с теми же результатами в консоли моего браузера. Вот мой код:

const GetBooks = {
 type: new GraphQLList(BookTypes),
 args: {},
 resolve() {
    return new Promise((resolve, reject) => {
        let sql = singleLineString`
        select * from books
        `;
        sql = mysql.format(sql);
        pool.query(sql, (err, results) => {
            if (err) {
                reject(err);
            }

            resolve(results);
            console.info(resolve(results));
        });
    });
   }
 };

Часть кода, которая «не работает», - это часть кода console.info (resolve (results)). Может кто-нибудь указать, почему это не работает?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
12
0
3 767
1

Ответы 1

console.info, который вы используете, находится не на стороне клиента.

Он регистрирует результат на стороне сервера, а не в браузере. Проверьте свою командную строку, которая запустила сервер GraphQL, журналы должны быть там.

Я тоже так думал, но командная строка тоже не выводит console.info; Я могу видеть другие сообщения console.info, которые я настроил в index.js и schema.js, но не могу выводить данные из файла запроса, хотя панель управления graphiql работает!

Roger Dodger 24.10.2018 15:32

Я в такой же ситуации, вы это решили?

Benoît P 11.07.2019 19:40

@ BenoîtPilatte кто-нибудь придумал решение этой проблемы?

Dan Mandel 16.08.2019 20:49

@DanMandel Мое обходное решение - выдать ошибку и уловить ее в браузере. Но мне нужно было сделать это только один раз, поэтому я не собираюсь искать ошибку.

Benoît P 17.08.2019 18:14

Код вопроса выше находится на стороне сервера. select * from.. - это серверный код. Я предполагаю, что graphql либо каким-то образом переопределяет console object - либо запускается в другом child-process - а console.info .. происходит в дочернем процессе ... поэтому мы ничего не видим в родительском процессе. И standard error stream захватывается и отправляется в браузер ... вот почему вы можете увидеть throw Error внутри resolver в браузере - но в main process не обнаруживается никаких исключений. Таким же образом они предотвращают сбой формы main process - и сообщают об этом клиенту.

AIon 07.09.2019 20:29

Другие вопросы по теме