Error handling in async await
You will get error in .catch
method of async await
Suppose you have a function
handleErrors(req, res, err) { return res.json({ success: false, message: err, data: null })}
And here is your query
try { let u = await user.find({ code: id }).lean(); return u;} catch(err) { handleErrors(req, res, err) //You will get error here}
You can check here for more
Mongoose maintainer here. The first question has been answered correctly. Re: "Secondly, can we have centralised error handling function which will get triggered whenever an error happens in any of the Mongoose code, it gets directed to a particular function in the project where it can be handled.", try this:
async function run() { await mongoose.connect(connectionString); const schema = new mongoose.Schema({ n: Number }); schema.post('findOne', function(err, doc, next) { console.log('Got error', err.stack); }); const Test = mongoose.model('Test', schema); console.log(await Test.findOne({ n: 'not a number' }));}
Here's my blog post on Mongoose error handling middleware