等待页面加载之前调用节点api时出错

时间:2019-01-21 08:48:20

标签: javascript node.js mongoose

我正在使用Node.js和MongoDb进行开发,其标题如下图所示

enter image description here

每个header元素都调用一个node.js api,该API会执行一些猫鼬的聚合调用并返回一些数据,并且页面会得到渲染。一切工作正常,但是当用户单击任何菜单时,加载过程需要5-10秒;在此期间,如果用户单击另一个或相同菜单按钮(页面正在加载),则已定义的节点api中会发生未定义的变量错误。用户在单击其他菜单按钮之前等待页面完全加载时,应用程序运行正常。

app.get("/services", function(req, res) {



mongoose.connection.db.collection("dummy", function(err, collection) {

    collection.aggregate(
        [{}]
    ).toArray(function(err, site_count1) {


        mongoose.connection.db.collection("dummy", function(err, collection) {

            collection.aggregate(
                [{}]
            ).toArray(function(err, site_count2) {
                label=["scared","excitement","loved/liked","anger","unhappy","concerned","happy"]
                mongoose.connection.db.collection("dummy", function(err, collection) {

                    dataset={}
                    diet = []

                    diet = []
                    typ="Emotion"

                    dataset[typ] = {}
                    //console.log(typ)
                    collection.aggregate(
                        [
                            {}
                        ]
                    ).toArray(function(err, pro) {


                        console.log(diet)
                        dataset[typ]["label"]=(categ1) //Here error is coming dataset[typ] not defined and this is already defined above at line 28
                        dataset[typ]["x-axis"]=label.sort()




                        mongoose.connection.db.collection("dummy", function(err, collection) {


                            collection.aggregate([{}]
                            ).toArray(function(err, pro) {

                                mongoose.connection.db.collection("dummy", function(err, collection) {


                                    collection.aggregate(
                                        [{}]
                                    ).toArray(function(err, pro) {




                                        res.render("sentimentview", {
                                            dataset: JSON.stringify(sentiment)
                                        });
                                    });
                                });

                            });

                            //        if(proc==Type.length)
                            //        {

                        })

                    });

                    //        if(proc==Type.length)
                    //        {

                })
            })
        })


    })


});
});

以上是在单击服务上进行的节点调用的示例代码。错误出现在

  

dataset [typ] [“ label”] =(categ1)

如果用户在不等待页面加载的情况下再次单击按钮,则此代码。

0 个答案:

没有答案