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