0.5.0 • Published 11 years ago
emme v0.5.0
emme 
Quickly and easily expose your Mongoose models to the world with an easy to customize API built on top of Express.
var express = require('express'),
mongoose = require('mongoose'),
bodyParser = require('body-parser'),
em = require('em-expose');
var UserModel = require('./models/User.js'),
CommentModel = require('./models/Comment.js');
em
.expose(UserModel, {
path: '/account', // would default to /user
protected: ['username', 'createdAt', 'updatedAt'], // not editable
private: ['password', 'auth._google_id', 'auth._facebook._id', '__v'] // never visible
})
var app = express();
app.use(bodyParser());
// expose user model
app.use('/user', em(UserModel, {
// these fields wont be viewable
private: {
'auth.password': true, // flatten paths
'createdAt': true,
'metadata': {
'awards': true // or keep them expanded
},
'comments._id': true // filter items in collections
},
// these fields wont be editable
protected: {
'username': true,
},
// custom CRUD
methods: {
remove: false // in this case don't let them be deleted
}
}));
// The following routes are now exposed
// /user GET(browse), POST(create)
// /user/:id GET(get), POST(save)Documentation
Exposer
expose(Model, options) require(em-expose)(Model, options)
Builds an Express router that exposes the Mongoose model.
Arguments
Model- a Mongoose modeloptionsprivate- Object of paths that are not shown or editable.protected- Object of paths that are shown but not editable.methods- Object to override individual method settingsbrowse,create,retrieve,update, and/ordeleteprivate- Override the object of paths that are not shown or editable.protected- Override the object of paths that are shown but not editable. (only matters oncreateandupdate)preModel-function(req, res, nex)- Express style function, called before model is requestedpostModel-function(req, res, next)- Express style function, called after/if model has been found (access it withreq.doc)preSend-function(req, res, next)- Express style function, called just before sending the model