我正在开发一个节点应用程序,并用一个单独的模型层对其进行了结构化以组织我的代码。该模型具有一个名为getImages的函数,该函数利用Mongojs模块从数据库中获取信息。问题是getImages在检索数据之前返回。我曾经使用过同步代码,所以这个问题很难解决。我怀疑答案是采用某种回调函数。有人可以证明这将如何工作吗?还是如果没有回调方法,那是什么?

路线/index.js

exports.image = function(req, res) {
if (req.method == 'GET') {

    var image = model.getImages();
    return res.send(image);
}
}


模型/ index.js

var getImages = function() {

    var imagesCollection = db.collection('Images');

    var images = imagesCollection.find(function(err, docs) {
        return docs;
    });

    return images;
}

exports.getImages = getImages;

最佳答案

您需要为getImages函数提供一个回调参数。如:

路线/index.js

exports.image = function(req, res) {
    if (req.method == 'GET') {
        model.getImages(function(err, images) {
            return res.send(images);
        });
    }
}


模型/ index.js

var getImages = function(callback) {

    var imagesCollection = db.collection('Images');

    imagesCollection.find(callback);
}

exports.getImages = getImages;

07-24 18:08