2016-11-08 5 views
-4

Hapi 및 MongoDB의 초기 설치시 오류가 발생하며 서버를 시작한 후 오류가 발생합니다.hapi : 플러그인 등록이 완료되기 전에 서버를 시작할 수 없습니다.

는 코드 : server.register 콜백 내부

const Hapi = require('hapi'); 
var Boom = require("boom"); 

const dbOptions = { 
    url: "mongodb://localhost:27017/comparekaro", 
    settings: { 
    db: { 
     native_parser: false 
    } 
    } 
} 

const server = new Hapi.Server(); 

server.connection({ 
    port : 3001, 
    router : { 
    stripTrailingSlash : true, 
    }, 
    routes : { 
    cors : true, 
    } 
}); 


server.route({ 
    method: 'GET', 
    path: '/', 
    handler: (request, reply) => { 
    var db = request.server.plugins['hapi-mongodb'].db; 
    var ObjectID = request.server.plugins['hapi-mongodb'].ObjectID; 

    db.collection('catalogs').find((err, result) => { 
     if (err) return reply(Boom.internal('Internal MongoDB error', err)); 
     reply(result); 
    }); 
    } 
}); 

server.route({ 
    method: 'GET', 
    path: '/{name}', 
    handler: (request, reply) => { 
    reply(`i am ${request.params.name}`); 
    } 
}); 

server.register({ 
    register: require('hapi-mongodb'), 
    options: dbOptions 
}, function (err) { 
    if (err) { 
     console.error(err); 
     throw err; 
    } 
}); 

server.start((err) => { 
    if (err) { 
     throw err; 
    } 
    console.log(`Server running at: ${server.info.uri}`); 
}); 
+1

같은 문장을 세 번 반복하면 어떻게 도움이 될 것이라고 생각합니까? –

+0

오류가 무엇인지 언급해야합니다. –

답변

0

이동 server.start 콜백이는 논리적 인 순서로 실행해야 비동기 작업입니다.