【问题标题】:Have this type of the error Callback was already called有这种类型的错误 Callback was already called
【发布时间】:2018-05-01 00:05:42
【问题描述】:
router.post("/cart/paycash/add-order",(req,res)=>{
    async.waterfall([
        function getorder(callback){
            req.checkBody("emri","Ju lutem vendosni emrin").notEmpty();
            req.checkBody("mbiemri","Ju lutem vendosni mbiemrin").notEmpty();
            req.checkBody("numritelefonit","Ju lutem vendosni numrin e telefonit").notEmpty();
            req.checkBody("qyteti","Ju lutem vendosni qytetin").notEmpty();
            var emri = req.body.emri;
            var mbiemri = req.body.mbiemri;
            var telefoni=req.body.numritelefonit;
            var email = req.body.email;
            var qyteti = req.body.qyteti;
            var adresa =req.body.adresa;

            var Cart = req.session.cart;
            console.log(Cart);
            Orders.find({},function(err,orders){
               if(err){
                  callback(err,null);
                  return;
               }

               var order=new Orders({
                  emri:emri,
                  mbiemri:mbiemri,
                  telefoni:telefoni,
                  email:email,
                  qyteti:qyteti,
                  adresa:adresa,
                  products:[]
                });
              order.save();
              callback(null,order,Cart);
          });
        },
        function getCart(order,Cart,callback){
            console.log(Cart);
                async.forEach(Cart,function(product){

                    console.log(product);
                    var productcall=product.title;
                    var order1=order;
                    callback(null,productcall,order1);
                });

        },
        function findProduct(order1,productcall,callback){
                Products.findOne({title:productcall},function(err,prod){
                    if(err){
                        callback(err,null);
                        return;
                    }

                    order1.products.push(prod);
                    order1.save();
                    callback(null,order1);

                });
        }
],function(err,order1){
            if(err){
                console.log(err);
                return;
            }
            delete req.session.cart;
            delete req.session.promocode;
            res.redirect("/dyqani");
        });
    });

我有这个问题,如果我的购物车长度超过 2 则显示错误“回调已被调用”,所以我知道我的错误在 async.forEach,但我不知道如何解决它.任何人都可以帮助我,以便我可以解决错误吗?我希望能够在我的订单中显示两个以上的产品。当我有一个时一切正常,但是当我有两个或更多时,它显示回调已被调用的错误。

【问题讨论】:

    标签: javascript arrays node.js mongodb mongoose


    【解决方案1】:
    function getCart(order,Cart,callback){
        console.log(Cart);
        async.forEach(Cart,function(product, callback){
    
            console.log(product);
            var productcall=product.title;
            var order1=order;
            callback(null,productcall,order1);
        }, callback);
    },
    

    【讨论】:

    • 我现在进行更改并显示此错误:无法读取未定义的属性“推送”
    猜你喜欢
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 2019-12-10
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多