CRUD API utility written in 36 lines of code, using native Promises and Mongoose methods.
module.exports.create = function (model, body) {
return Promise((resolve, reject) => {
new model(body).save()
.then((result) => resolve(result))
.catch((err) => reject(err))
})
}
module.exports.query = function (model, query) {
return Promise((resolve, reject) => {
model.find(query)
.then((result) => resolve(result))
.catch((err) => reject(err))
})
}
module.exports.details = function (model, id) {
return Promise((resolve, reject) => {
model.findOne({ _id: id })
.then((result) => resolve(result))
.catch((err) => reject(err))
})
}
module.exports.delete = function (model, id) {
return Promise((resolve, reject) => {
model.findByIdAndRemove(id)
.then((result) => resolve(result))
.catch((err) => reject(err))
})
}
module.exports.update = function (model, query, body) {
return Promise((resolve, reject) => {
model.findOneAndUpdate(query, body, {}, (err, result) => {
if(err) return reject(err)
return resolve(result)
})
})
}