UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: путь должен быть строкой - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю с 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 с ненулевым кодом выхода.

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