@attractor/micro-mongoose

1.1.0 • Public • Published

micro-mongoose

A simple package that allows you to use mongoose with micro.

Installation

$ npm i @attractor/micro-mongoose --save

Usage

const {send} = require('micro')
const {Schema} = require('mongoose')
const microMongoose = require('@attractor/micro-mongoose')

const models = {
    User: {
        name: 'user',
        schema: new Schema({
            email: String,
            name: String,

            salt: String,
            password: String,

            created_at: { type: Date, default: Date.now },
            updated_at: { type: Date, default: Date.now },
        })
    }
}

const withMongoose = microMongoose({ models, database: 'mydb', branching: true })

const handler = async (req, res, { User }) => {
    const user = await User.findOne()
    send(res, 200, user)
}

module.exports = withMongoose(handler)

and run locally via

$ MONGO_HOST=mongodb://localhost node index.js

or deploy with ZEIT's now

now -e MONGO_HOST=mongodb://someremote.mongodb.host:11111

Details

Exported method withMongoose consists of 2 arguments: options and handler.

  • handler is the micro function that you will use to handle the http request with.
  • options is an object that has following parameters:
    • models an object containing a properly formatted dictionary of mongoose schemes
    • database string with database name
    • branching in case you are using ZEIT's now, you can enable branching so prefixes would be added to the database names; On a now deployment from master branch prefix will be live-, in any other case prefix will be staging-.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.0
    6
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.1.0
    6
  • 1.0.0
    6

Package Sidebar

Install

npm i @attractor/micro-mongoose

Weekly Downloads

0

Version

1.1.0

License

MIT

Unpacked Size

5.45 kB

Total Files

5

Last publish

Collaborators

  • inlife