如何在使用nodejs和mysql进行抓取时插入数据库时​​避免冗余

时间:2012-03-15 10:08:55

标签: javascript mysql node.js web-scraping

使用nodejs报废和mysql开发一个。我想将细节存储到mysql数据库中。我已经写了它成功保存的查询,如果我们再次运行脚本,它还会检查冗余。如果表中没有数据(空表),则不检查冗余。所有数据都保存到数据库中。

我编写的代码,以避免冗余并插入表格。

mysql.query(
    'select id, name from ' + product_details + ' where name = "'+$name+'"',                                                             
    function(err, result, fields) {
        if (err) throw err;
        else {
            var i;
            for (i in result) {
                var product = result[i];
                if(product.id>0){
                }
            }
            if(i==undefined){
                mysql.query('insert into '+ product_details +' (name) values ("' + $name + '")',
                    function selectCb(err, results, fields) {
                        if (err) throw err;
                        else {
                            console.log("inserted");
                    }
            });
        }
    }
});

请帮我解决这个问题。我是nodejs报废的新手。请帮我。提前致谢。 **更新**

谢谢user1027167。我尝试了你的解决方案,我解决了这个问题。但现在发生mysql错误然后脚本执行停止,但我希望脚本通过省略(留下)要保存在数据库中的详细信息来继续执行。怎么做请帮帮我

1 个答案:

答案 0 :(得分:1)

你必须像这样获取错误:

mysql.query('insert into '+ product_details +' (name) values ("' + $name + '")',
    function errorhandler(err, results, fields) {
        if (err)
        {
            console.log("name is not unique");                
            // do something else
        }
    }
});

所以你不应该抛弃它。