0.4.2 • Published 9 years ago

mongooseware v0.4.2

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

mongooseware

Magic mongoose middleware for express Build Status
Works great with tjmehta/dat-middleware

Installation

npm install mongooseware

Examples

Model class methods

var mw = require('dat-middleware');
var BlogModel = require('mongoose').model('blogs', BlogSchema);
var blogs = require('mongooseware')(BlogModel);
var app = require('express')();

app.post('blogs',
  mw.body('name').require().string().pick(),
  blogs.create('body'),
  mw.res.send('blog'));

app.get('blogs',
  mw.query('name').require().string().pick()
  blogs.find('query'),
  mw.res.send('blogs'));

app.get('blogs/:blogId',
  blogs.findOne({ _id: 'params.blogId' }),
  mw.req('blog').require()
    .else(
      mw.res.next(mw.Boom.notFound('Blog not found'))
    ),
  mw.res.send('blog'));

Model instance methods

var mw = require('dat-middleware');
var BlogModel = require('mongoose').model('blogs', BlogSchema);
var blogs = require('mongooseware')(BlogModel);
var app = require('express')();

app.patch('blogs/:blogId',
  blogs.findOne({ _id: 'params.blogId' }),
  mw.req('blog').require()
    .else(
      mw.res.next(mw.Boom.notFound('Blog not found'))
    ),
  mw.body('name').require().string().pick(),
  blogs.model.update({
    $set: 'body'
  }),
  mw.res.send('blog'));

method-chain.exec(reqKey)

Specify the key to which an async method's results should be saved to on req

method-chain.sync(reqKey)

Specify the key to which an sync method's return value should be saved to on req

License

MIT