Skip to content

Instantly share code, notes, and snippets.

@ZZR-china
Last active December 2, 2016 11:02
Show Gist options
  • Select an option

  • Save ZZR-china/c3a8d257d06a100568143982ff610ea4 to your computer and use it in GitHub Desktop.

Select an option

Save ZZR-china/c3a8d257d06a100568143982ff610ea4 to your computer and use it in GitHub Desktop.

Revisions

  1. ZZR-china revised this gist Dec 2, 2016. No changes.
  2. ZZR-china created this gist Dec 2, 2016.
    86 changes: 86 additions & 0 deletions mongo_helper.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,86 @@
    /*
    * Author: Magic <magic@foowala.com>
    * Module description: mongo func helper
    */
    'use strict';

    var mongo_funcs = function (mongo_name) {

    this.findOne = (data) => {
    return new Promise((resolve, reject) => {
    mongo_name.findOne(data, (err, result) => {
    if (err) {
    return reject(err);
    }
    return resolve(result);
    })
    })
    };

    this.save = (data) => {
    return new Promise((resolve, reject) => {
    const mongo_doc = new mongo_name(data);
    mongo_doc.save((err, result) => {
    if (err) {
    return reject(err);
    }
    return resolve(result);
    })
    })
    };

    this.insert = (data) => {
    return new Promise((resolve, reject) => {
    this.findOne(data)
    .then(result => {
    if (result) {
    return reject('already has this func')
    }else{
    return this.save(data)
    }
    })
    .then(result => {
    resolve(result)
    })
    .catch(err => {
    console.log(err)
    return reject(err);
    })
    })
    },

    this.insertFree = (key, data) => {
    return new Promise((resolve, reject) => {
    this.findOne(key)
    .then(result => {
    if (result) {
    return reject('already has this func')
    }else{
    return this.save(data)
    }
    })
    .then(result => {
    resolve(result)
    })
    .catch(err => {
    console.log(err)
    return reject(err);
    })
    })
    },



    this.update = (key, data) => {
    return new Promise((resolve, reject) => {
    mongo_name.update(key, data, (err, result) => {
    if (err) {
    return reject(err);
    }
    return resolve(result);
    })
    })
    };
    }

    module.exports = exports = mongo_funcs;