Расширение SchemaDirectiveVisitor для использования директив схемы сервера Apollo в NodeJS - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь расширить SchemaDirectiveVisitor для создания пользовательской директивы в Apollo Server 2. Я специально использую модуль узла 2.2.6 хапи.

Вот мой код server.js:

const { ApolloServer } = require('apollo-server-hapi');
const { SchemaDirectiveVisitor } = ApolloServer;

class ViewTemplateGroup extends SchemaDirectiveVisitor {
  visitFieldDefinition(field) {
    console.log('Im calling this directive!');
    return;
  }
}

Когда я запускаю свой сервер, я сразу же получаю следующую ошибку:

TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (/Users/garrett.kim/Desktop/Projects/Test Web/poc-graphQL-forms-gyk/server.js:36:33)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Function.Module.runMain (module.js:701:10)
    at startup (bootstrap_node.js:193:16)
    at bootstrap_node.js:617:3

Насколько я знаю, я очень внимательно следую примеру Apollo Server 2.

https://www.apollographql.com/docs/apollo-server/features/creating-directives.html

Буду признателен за любую помощь в получении директив.

1 Ответ

0 голосов
/ 08 декабря 2018

Класс ApolloServer не имеет свойства SchemaDirectiveVisitor;следовательно, вызов ApolloServer.SchemaDirectiveVisitor приводит к неопределенности, и класс не может расширяться неопределенно, как указывает ошибка.Просто импортируйте SchemaDirectiveVisitor напрямую из модуля apollo-server-hapi:

const { ApolloServer, SchemaDirectiveVisitor } = require('apollo-server-hapi')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...