如何返回Node.js回调

Dor*_*hen 3 asynchronous callback mongoose mongodb node.js

我有一个node.js方法,使用mongoose返回一些数据,问题是因为我在我的方法中使用回调没有任何东西被返回给客户端

我的代码是:

var getApps = function(searchParam){
    var appsInCategory = Model.find({ categories: searchParam});
    appsInCategory.exec(function (err, apps) {
        return apps;
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我试图通过使用json对象同步它,例如它将工作:

var getApps = function(searchParam){
    var appsInCategory = JSONOBJECT;
    return appsInCategory
} 
Run Code Online (Sandbox Code Playgroud)

我能做什么?

Ben*_*aum 5

你不能从回调中回来 - 看看这个关于基本问题的规范.既然你正在使用Mongoose,你可以回复它的承诺:

var getApps = function(searchParam){
    var appsInCategory = Model.find({ categories: searchParam});
    return appsInCategory.exec().then(function (apps) {
        return apps; // can drop the `then` here
    });
}
Run Code Online (Sandbox Code Playgroud)

哪个会让你这样做:

getApps().then(function(result){
    // handle result here
});
Run Code Online (Sandbox Code Playgroud)