如何使用express.js获取两个收集文档并计算点? [英] How can get two collection documents and calculate points using express.js?

查看:40
本文介绍了如何使用express.js获取两个收集文档并计算点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

exports.show = = function(req, res) {
    var userdata = [{
        "productcode": "9563456789",
        "cost": "1000"

    }, {
        "productcode": "8756348947",
        "cost": "5600"

    }]



    var parameterObject = [];

    Parameter.find().exec(function(err, Parameters) {
        if (err) {
            return handleError(res, err);
        }
        // i want to push Parameters[0].value to parameterObject
        parameterObject.push({
            pointvalue: Parameters[0].value
        });


    });


    for (var i = 0; i < userdata.length; i++) {

        Product.find({
            'productcode': userdata[i].productcode
        }).exec(function(err, Products) {
            if (err) {
                return handleError(res, err);
            }
            var point = 0;
            if (!Products) {
                point = 0;
            } else if (Products[0].product.point > 0) {
                point = Products[0].product.point;
            }
            if (point > 0) {

                // here i am not getting userdata[i].cost
                //parameterObject.pointvalue value also not getting
                totalprice = userdata[i].cost / parameterObject.pointvalue * point;
            }


        });
    }
};

在这里,我已经编写了用于计算总价的函数.我已经提到过userdata(这是我的要求正文).

Here i have written function for calculating totalprice. i have mentioned userdata(this is my req.body).

期望:

我需要将Parameters对象存储在某个变量中,以访问我想要的任何位置.我想在Product.find()函数中传递userdata对象

i need to store Parameters objects in some variable to access where ever i want. i want to pass userdata object in Product.find() function

我该如何计算

totalprice= userdata[i].cost/parameterObject.pointvalue) * point);

推荐答案

exports.show = = function(req, res) {
    var userdata = [{
        "productcode": "9563456789",
        "cost": "1000"

    }, {
        "productcode": "8756348947",
        "cost": "5600"

    }]

    var parameterObject = [];

    Parameter.find().exec(function(err, Parameters) {
        if (err) {
            return handleError(res, err);
        }
        // i want to push Parameters[0].value to parameterObject 
        parameterObject.push({
            pointvalue: Parameters[0].value
        });

        return FindProducts(parameterObject, function(data) {
            console.log(data);
        });
    });

    function FindProducts(parameterObject, callback) {
        for (var i = 0; i < userdata.length; i++) {
            var totalprice = 0;
            findProduct(i, parameterObject,  function(i, price) {
                totalprice += price;
                if (i <= userdata.length) {
                    return callback({
                        "userid": "myuserid",
                        "total": totalprice
                    });
                }
            });
        }
    }

    function findProduct(i, parameterObject, callback) {
        Product.find({
            'productcode': userdata[i].productcode
        }).exec(function(err, Products) {
            if (err) {
                return handleError(res, err);
            }
            var point = 0;
            if (!Products) {
                point = 0;
            } else if (Products[0].product.point > 0) {
                point = Products[0].product.point;
            }
            if (point > 0) {

                // here you can now get the value of userdata[i].cost 
                // here you can now get the value of parameterObject 
                totalprice = userdata[i].cost / parameterObject[0].pointvalue * point;

                return callback(i, totalprice);
            }

        });
    }


};

这篇关于如何使用express.js获取两个收集文档并计算点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆