javascript - Node.js 应用模型层异步返回数据

标签 javascript node.js

我正在开发一个 Node 应用程序,并使用单独的模型层来构建它来组织我的代码。该模型有一个名为 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;

关于javascript - Node.js 应用模型层异步返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597301/

相关文章:

c++ - 将对象传递给 Node.js C++ 插件

node.js - Objection.js 查询构建器如何知道应该何时执行链式调用?

javascript - "Style"是 javascript 中的保留字吗?

Javascript 返回 undefined object 属性

javascript - 通过相同的 id 实时更新 javascript 中的文本

javascript - 使用 Socket.io 的通知 - 如何发送给特定的用户/收件人?

javascript - React 中的类型是什么?

javascript - Google Analytics,出站事件跟踪

html - node.js express 使用样式表/脚本

node.js - 通过 @IsInt() 验证 application/x-www-form-urlencoded 请求类型