kenote-mongoose-helper
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.4 • Public • Published

    mongoose-helper

    Mongoose's Helper.

    NPM Version NPM Downloads Build Status Gratipay

    Premise

    $ npm install mongoose
    $ npm install --save-dev @types/mongoose @types/bluebird @types/lodash
    # Or 
    $ yarn add mongoose
    $ yarn add -D @types/mongoose @types/bluebird @types/lodash

    Installation

    $ npm install kenote-mongoose-helper
    # 
    $ yarn add kenote-mongoose-helper

    Usages

    models/index.ts

    import * as mongoose from 'mongoose'
    import { Connector, Connect, MountModels } from 'kenote-mongoose-helper'
    import userModel from './user'
     
    @Connect({
      uris: 'mongodb://localhost:27017/mongodb_test'
    })
    @MountModels({ userModel })
    class MongoDB extends Connector {}
     
    const DB: Connector = new MongoDB()
    DB.connect()
     
    export default DB.__Models

    models/user.ts

    import { Schema, model } from 'mongoose'
     
    export default model('user', new Schema({
      id: {
        type: Number,
        default: 0,
        index: { unique: true }
      },
      username: {
        type: String,
        required: true
      }
    }))

    proxy/user.ts

    import * as mongoose from 'mongoose' 
    import { MongooseDao, autoNumber, QueryOptions } from 'kenote-mongoose-helper'
    import __Model from '../models'
     
    const Model: mongoose.Model<mongoose.Document, {}> = __Models.userModel
    const options: QueryOptions = {
      name: 'user',
      populate: { path: '' },
      seqModel: __Models.seqModel
    }
     
    @autoNumber({
      idName: 'id'
    })
    class UserDao extends MongooseDao {}
     
    class UserProxy {
     
      public Dao: MongooseDao = new UserDao(Model, options)
    }
     
    export default new UserProxy()

    **/user.ts

    import * as mongoose from 'mongoose'
    import userProxy from '../proxy/user'
     
    async function createUser (doc: any): mongoose.Document | null {
      try {
        let user: mongoose.Document | null = userProxy.Dao.create(doc)
        return user
      } catch (error) {
        console.erroe(error)
      }
    }

    License

    this repo is released under the MIT License.

    Install

    npm i kenote-mongoose-helper

    DownloadsWeekly Downloads

    0

    Version

    1.1.4

    License

    MIT

    Unpacked Size

    39.6 kB

    Total Files

    24

    Last publish

    Collaborators

    • thondery