Я создал проект узла js с графом ql (с очень простой схемой), но когда я пытаюсь запустить сервер после регистрации плагинов для graphql и graphiql, я получаю регистр, в котором отсутствует ошибка. Ниже мой код
const hapi=require('hapi');
const { graphqlHapi, graphiqlHapi } = require('apollo-server-hapi');
const { makeExecutableSchema } = require('graphql-tools');
const graphqlSchema = require('./graphql/schema');
const createResolvers = require('./graphql/resolvers');
const executableSchema = makeExecutableSchema({
typeDefs: [graphqlSchema],
resolvers: createResolvers(),
});
const server=hapi.server({
port: 4000,
host:'localhost'
});
server.register({
plugin: graphqlHapi,
options: {
path: '/graphql',
graphqlOptions: () => ({
pretty: true,
schema: executableSchema,
}),
},
});
server.register({
plugin: graphiqlHapi,
options: {
path: '/graphiql',
graphiqlOptions: {
endpointURL: '/graphql',
},
},
});
const init= async()=>{
routes(server);
await server.start();
console.log(`Server is running at: ${server.info.uri}`);
}
init();
Я изначально дал имя ключа в качестве регистра вместо плагина в функциях server.register (). В любом случае я получаю ошибку ниже
(узел: 19104) Предупреждение об устаревании: текущий синтаксический анализатор строки URL
устарела и будет удалена в следующей версии. Чтобы использовать новый
синтаксический анализатор, передать параметр {useNewUrlParser: true} в MongoClient.connect.
(узел: 19104) UnhandledPromiseRejectionWarning: AssertionError
[ERR_ASSERTION]: недопустимые параметры плагина {
"плагин": {
"опции": {
"путь": "/ graphql",
"graphqlOptions": () => ({\ r \ n pretty: true, \ r \ n схема: exe cutableSchema, \ r \ n})
},
"register" [1]: - отсутствует -}}
Пожалуйста, помогите мне понять, когда здесь происходит этот код и как его можно исправить.
Ниже приведены зависимости в моем проекте
apollo-server-hapi ":" ^ 2.3.1 "," graphql ":" ^ 14.0.2 "," graphql-tools ":
"^ 4.0.3", "хапи": "^ 17.8.1",
EDIT
Код после внесения предложенных изменений
const hapi=require('hapi');
const { graphqlHapi, graphiqlHapi } = require('apollo-server-hapi');
const { makeExecutableSchema } = require('graphql-tools');
const graphqlSchema = require('./graphql/schema');
const createResolvers = require('./graphql/resolvers');
const executableSchema = makeExecutableSchema({
typeDefs: [graphqlSchema],
resolvers: createResolvers(),
});
async function start_server() {
const server=hapi.server({
port: 4000,
host:'localhost'
});
await server.register({
plugin: graphqlHapi,
options: {
path: '/graphql',
graphqlOptions: () => ({
pretty: true,
schema: executableSchema,
}),
route: {
cors: true,
},
},
});
await server.register({
plugin: graphiqlHapi,
options: {
path: '/graphiql',
graphiqlOptions: {
endpointURL: '/graphql',
},
route: {
cors: true,
},
},
});
try {
await server.start();
console.log(`Server is running at: ${server.info.uri}`);
} catch (err) {
console.log(`Error while starting server: ${err.message}`)
}
}
start_server();