代码未执行完整脚本

时间:2016-11-27 18:43:31

标签: javascript amazon-web-services express amazon

我编写了一些检查列表的代码,并检查列表中的每个项目是否存在于另一个项目中。如果找不到该项,则将其添加到数据库中。

扫描代码是正确的(说明db.scan的部分)但是到了最后代码没有经过的地方,因为它没有执行console.log部分(其中说“将日志输入数据库...” “文章标题” 当我执行此代码时,没有任何反应。至少没有错误...但它甚至没有记录console.log部分,所以出了问题。

// accessing the database
function DatabaseTime(sourcesDates, timeAdded, links, titles, descriptions) {
    sourcesDates = sourcesDates;
    links = links;
    titles = titles;     //  this will be used to check on our articles
    descriptions = descriptions;

    var autoParams;
    var databaseOperation = function (sourcesDates, timeAdded, links, titles, descriptions) {
        var scanParams = { TableName: "Rnews" }
            // using code to setup for accessing the 2nd list
            db.scan(scanParams, function(err, scanData) {   // scanData = the 2nd list we are going to work with
                var counter = 0;    // just a way to help make my code more accurate as seen later in the loops
                var counter2 = 0;
                // this is the first list iterating on
                for (var i = 0; i < links.length; i++) {
                    counter = 0;
                    // looping through items in second list
                    for (var x = 0; x < scanData.Items.length; x++) {
                        // if article is not in db
                        if (titles[i] !== scanData.Items[x].title) {
                            continue; 
                        } 
                        else if (titles[i] === scanData.Items[x].title) {
                            // intention is to immediately move to the next item in the first list if this block executes
                            console.log("Article found: \"" + titles[i] + "\". Not proceeding anymore with article.");
                            counter++;
                            break;
                        } else {
                            //  if this article isnt found anywhere in the list we are checking on, add to database
                            if (x === scanData.Items.length && counter !== 0) {
                                autoParams = {
                                    TableName: "Rnews",
                                    Item: {
                                        title: titles[i],
                                        source: sourcesDates[i],
                                        url: links[i],
                                        description: descriptions[i],
                                        lastAddOrUpdated: dbTimeStamp,
                                        timePublish: timeAdded[i]
                                    }
                                }
                                console.log("Entering journal to database: " + titles[i]);
                                db.put(autoParams, function(err, data) {
                                    if(err) throw err;
                                });
                            //}
                        }
                    }
                }
            }
            });
        //console.log("Complete");
    };
    databaseOperation(sourcesDates, timeAdded, links, titles, descriptions);
}
//// END

1 个答案:

答案 0 :(得分:0)

您从未调用过函数DatabaseTime。您的代码只是声明函数而不执行任何其他操作。为了执行该函数,您必须调用它。