Don't check for nulls when running your Mongoose 5 queries - let rejected promises do it for you.
Before:
MyModel.findOne({foo: 'bar'})
.then(doc => {
if (!doc) {
throw new Error('Doc not found');
}
useDoc(doc);
});
After:
MyModel.findOne({foo: 'bar'})
.throwIfEmpty()
.then(doc => {
useDoc(doc);
})
.catch(e => {
console.log(e.status); // 404
console.log(e.message); // Not found
console.log(e.name); // MongooseDocumentNotFoundError
})
Simply import the library once anywhere in your code:
require('mongoose-throw-if-not-found-plugin');
It'll handle itself from there ;)
While typings are provided, sometimes your IDE may fail to recognise them for code hints. If this happens, simply add the import to the file you're using it from:
import 'mongoose-throw-if-not-found-plugin';