2016-11-08 58 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回調,這些都需要在一定的邏輯順序來運行異步操作。

相關問題