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));
});
});
}
});
我有一个 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));
});
});
}
});