dylanlott
1/13/2017 - 1:12 AM

CRUD API utility written in 36 lines of code, using native Promises and Mongoose methods.

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)
    })
  })
}