Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 异步函数中的错误处理_Node.js_Mongodb_Asynchronous_Web Scraping_Error Handling - Fatal编程技术网

Node.js 异步函数中的错误处理

Node.js 异步函数中的错误处理,node.js,mongodb,asynchronous,web-scraping,error-handling,Node.js,Mongodb,Asynchronous,Web Scraping,Error Handling,如果以下函数由于任何原因无法工作,我想在控制台中抛出一个错误。它从一个网站获取一些数据,并将它们写入mongoDB。 例如,如果mongoDB的插入或抓取失败,我希望在控制台中得到一条错误消息。我不知道如何使用nodejs归档正确的错误处理(0关于承诺之类的线索) artikel.getData(异步()=>{for(让i=0;i{ log('数据'+arrayOfArticles[i]+':'+已接收); //连接到数据库 connect(url,{useNewUrlParser:true},

如果以下函数由于任何原因无法工作,我想在控制台中抛出一个错误。它从一个网站获取一些数据,并将它们写入mongoDB。 例如,如果mongoDB的插入或抓取失败,我希望在控制台中得到一条错误消息。我不知道如何使用nodejs归档正确的错误处理(0关于承诺之类的线索)

artikel.getData(异步()=>{for(让i=0;i{
log('数据'+arrayOfArticles[i]+':'+已接收);
//连接到数据库
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
设dbo=db.db(“testDB”);
让insertPart={
名称:arrayOfArticles[i],
地点:经销商,,
价格:价格
};
dbo.collection(“testcollection”).insertOne(insertPart,function(err,res){
如果(错误)抛出错误;
console.log(divide);
控制台日志(“插入的文档”);
console.log(divide);
db.close();
}); 
});
});
}
});

您不应该在循环或API内部编写DB连接代码。它应该在某个配置文件中

您不需要编写
。然后
使用wait,使用try-catch进行错误处理

artikel.getData(() => {
    MongoClient.connect(url, {
        useNewUrlParser: true
    }, async function (err, db) {
        for (let i = 0; i < arrayOfArticles.length; i++) {
            try {
                const price = await scrape(i);
                //Connect to DB
                if (err) throw err;
                let dbo = db.db("testDB");
                let insertPart = {
                    name: arrayOfArticles[i],
                    site: dealer,
                    price: price
                };

                dbo.collection("testcollection").insertOne(insertPart, function (err, res) {
                    if (err) {
                        console.log(err);
                        throw err
                    };
                    console.log(divide);
                    console.log("Document inserted");
                    console.log(divide);
                });
            } catch (error) {
                console.log(error);
            }
        }
        db.close();
    });
});
artikel.getData(()=>{
MongoClient.connect(url{
useNewUrlParser:true
},异步函数(err,db){
for(设i=0;i
这确实帮了我很大的忙
artikel.getData(() => {
    MongoClient.connect(url, {
        useNewUrlParser: true
    }, async function (err, db) {
        for (let i = 0; i < arrayOfArticles.length; i++) {
            try {
                const price = await scrape(i);
                //Connect to DB
                if (err) throw err;
                let dbo = db.db("testDB");
                let insertPart = {
                    name: arrayOfArticles[i],
                    site: dealer,
                    price: price
                };

                dbo.collection("testcollection").insertOne(insertPart, function (err, res) {
                    if (err) {
                        console.log(err);
                        throw err
                    };
                    console.log(divide);
                    console.log("Document inserted");
                    console.log(divide);
                });
            } catch (error) {
                console.log(error);
            }
        }
        db.close();
    });
});