Я работаю с GraphQL
с Hapi
и запускаю с ошибкой,
вот код:
const hapi = require('hapi');
const mongoose = require('mongoose');
const { graphqlHapi, graphiqlHapi } = require('apollo-server-hapi');
const schema = require('./graphql/schema');
const Painting = require('./models/Painting');
/* swagger section */
const Inert = require('inert');
const Vision = require('vision');
const HapiSwagger = require('hapi-swagger');
const Pack = require('./package');
const server = hapi.server({
port: 5000,
host: 'localhost'
});
mongoose.connect ('mongodb: //dbuser:dbpassword@ds151612.mlab.com:51612/example_graphql_api',‹useNewUrlParser:true‹);
mongoose.connection.once('open', () => {
console.log('connected to database');
});
const init = async () => {
await server.register([
Inert,
Vision,
{
plugin: require(HapiSwagger),
options: {
info: {
title: 'Paintings API Documentation',
version: Pack.version
}
}
}
]);
await server.register({
plugin: require(graphiqlHapi),
options: {
path: '/graphiql',
graphiqlOptions: {
endpointURL: '/graphql'
},
route: {
cors: true
}
}
});
await server.register({
plugin: require(graphqlHapi),
options: {
path: '/graphql',
graphqlOptions: {
schema
},
route: {
cors: true
}
}
});
server.route([
{
method: 'GET',
path: '/api/v1/paintings',
options: {
description: 'Get all the paintings',
tags: ['api', 'v1', 'painting']
},
handler: (req, reply) => {
return Painting.find();
}
},
{
method: 'POST',
path: '/api/v1/paintings',
options: {
description: 'Get a specific painting by ID.',
tags: ['api', 'v1', 'painting']
},
handler: (req, reply) => {
const { name, url, technique } = req.payload;
const painting = new Painting({
name,
url,
technique
});
return painting.save();
}
}
]);
await server.start();
console.log(`Server running at: ${server.info.uri}`);
};
process.on('unHandledRejection', (err) => {
if (err) {
console.log(err);
process.exit(1);
}
});
init();
Ошибка:
(узел: 28684) UnhandledPromiseRejectionWarning:AssertionError [ERR_ASSERTION]: путь должен быть строкой
(узел: 28684) UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(идентификатор отклонения: 1)
(узел: 28684) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания не рекомендуется.В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.