Automatically create REST endpoints based on your mongoose models. This is by no means limited to ember. The ember in the name means that it's compatible with Embers rest adapter out of the box.
var express = require('express');
var app = express();
var mongoose = require('mongoose');
mongoose.connect(...)
var rest = require('express-rest-ember');
//
// Inject mongoose and specify the paths to the resources
//
rest.setup({mongoose: mongoose, resources: '/path/to/models' });
//
// Register the routes for "myResource"
//
app.use('/api/myResource', rest.routes.myResource); // Your resource will now be avilable at http://host/api/myResource
//
// If you want to protect resources you can ofcourse do it using middleware
// (like passport)
//
app.use('/api/myProtectedResource', myAuthMiddleware, rest.routesmyProtectedResource);
app.listen(3000);Look in the example folder for a full working example.
All your models should be stored in the same directory (e.g. resources/).
module.exports = function (mongoose) {
var PostSchema = new mongoose.Schema({
title: { type: String, required: true },
body: { type: String }
});
var model = mongoose.model('Post', PostSchema);
//
// For express-rest-ember to work you MUST
// return an object containing model and Schema
// properties...
//
return {
model: model,
Schema: PostSchema
};
}Notice that you must export it as a function where mongoose will be injected as the first argument.
Run the tests for a better understanding of how the routes work, as the output will give you a good hint.
Install mocha globally
$ npm install mocha -g
Run the tests
$ npm test