我一直在研究一個允許我將公司添加到數據庫的應用程序。原來我的代碼是純意大利麪條,所以我想正確模塊化。爲此,我添加了路線,控制器和道路。回調,錯誤捕獲和MongoDB的問題
這是我的代碼看起來現在
路線
app.post('/loadcompanies', (req, res)=> {
companiesController.loadcompany(req.body, (results)=>{
console.log(results);
res.send(200, "working!");
})
})
控制器
module.exports.loadCompany = (body, callback)=>{
companiesDao.loadCompany(body, callback);
}
道
module.exports.loadCompany = (company, callback)=>{
MongoClient.connect(conexionString, (err, database) => {
if (err) console.log(err);
db = database;
console.log(company);
db.collection('companies').insert(company, (err, result)=>{
callback({message:"Succesfully loaded company", company:result});
});
})
}
我目前的擔心是,像這樣模塊化時發生錯誤是令人困惑的。我試着在db插入的時候添加一個try-catch方法,如果有的話會拋出錯誤,但這似乎不起作用。其他的事情我已經試過在回調返回錯誤,像這樣:
if (err) callback (err, null);
,但我最終得到「無法設置頭髮送之後。」錯誤。
你會如何處理這種情況下的錯誤?例如,在有人試圖在唯一元素中添加重複條目的情況下。
回調和錯誤檢查一直是棘手的,我會建議你看看使用承諾,然後研究異步/等待,使事情變得更好。 – Keith
作爲一個附錄,在我原來的意大利麪條應用程序中,我剛剛發送了一個503,當mongodb發生了錯誤,那就是 – xai2
我會看看承諾和異步等待肯定,因爲回調可以真正混淆哈哈,但這些案例的例子似乎主要是回調。 謝謝! – xai2