HapiJS 路由问题

HapiJS Routing Problems

我有一个 routes.js 这样的:

server.route({
   method: 'GET',
   path: '/marvel/universal/verify/{serial?}',
    handler: function(request, h) {
    let obj = { "test": "a" };
    Db.find('marvel', obj, 1, function(result) {

    });
        return h.response(result);
    }
});

和一个数据库模块连接到 MongoDB,使用节点的官方 MongoDB 包,如下所示:

function find(collection, data, limit, callback) {
   mongo.db.collection(collection).findOne(data, function(err, r) {
     callback(r);
   });
}

显然我不能 return 来自匿名函数 callback 的结果,所以我怎样才能将结果传递给 h.reponse(result)?

经过一些调试后,HAPI 允许您return 承诺,因此return将结果放入承诺中是可行的!

server.route({
   method: 'GET',
   path: '/marvel/universal/verify/{serial?}',
    handler: function(request, h) {
      let obj = { "test": "a" };
      return new Promise(function(resolve,reject){
        Db.find('marvel', obj, 1, function(result) {
          resolve(h.response(result));
        });
      });
    }
});