完成所有操作后,NodeJS和MongoDB发送响应

时间:2014-07-09 11:13:30

标签: node.js mongodb asynchronous

我需要做一些MongoDB查询以返回请求的结果。 这是我的代码:

     var getFzAmount = function (req, res, next) {

            var id = req.params.id;
            var total = 0;

            var error = function (err) {
                next(err);
                log.error(err);
            };

            var query = {
                client: id
            };

            ordersRepository.customQuery(db, query, function (orders) {
                _.forEach(orders, function (order) {
                    var query = {order: order._id};
                    billRepository.customQuery(db, query, function (bill) {
                        if (bill) {
                            if (bill.serie = 'FZ') {
                                total += bill.totalWithTaxe;
                            }
                        }
                    }, error);
                });
res.send(total);
            }, error);

        };

首先,我得到所有"命令"对于某些查询,然后,我在订单中执行foreach,查找是否在bill集合中为迭代器对象位置存在文档,如果匹配条件(object.serie =" FZ"),则添加变量并返回它。

由于_.each其异步res.send函数内的函数在所有查询完成之前完成,我该怎么办?

0 个答案:

没有答案