Create a Mongoose ORM wrapped service for FeathersJS.
Installation
npm install feathers-mongoose --save
Documentation
Please refer to the Feathers database adapter documentation for more details or directly at:
- Mongoose - The detailed documentation for this adapter
- Extending - How to extend a database adapter
- Pagination and Sorting - How to use pagination and sorting for the database adapter
- Querying - The common adapter querying mechanism
Getting Started
Creating an Mongoose service is this simple:
var mongoose = require('mongoose'); var MongooseModel = require('./models/mymodel') var mongooseService = require('feathers-mongoose'); mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost:27017/feathers'); app.use('/todos', mongooseService({ Model: MongooseModel }));
See the Mongoose Guide for more information on defining your model.
Complete Example
Here's a complete example of a Feathers server with a message mongoose-service.
const feathers = require('feathers'); const rest = require('feathers-rest'); const socketio = require('feathers-socketio'); const errors = require('feathers-errors'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const service = require('feathers-mongoose'); // Require your models const Message = require('./models/message'); // Tell mongoose to use native promises // See http://mongoosejs.com/docs/promises.html mongoose.Promise = global.Promise; // Connect to your MongoDB instance(s) mongoose.connect('mongodb://localhost:27017/feathers'); // Create a feathers instance. const app = feathers() // Enable Socket.io .configure(socketio()) // Enable REST services .configure(rest()) // Turn on JSON parser for REST services .use(bodyParser.json()) // Turn on URL-encoded parser for REST services .use(bodyParser.urlencoded({extended: true})); // Connect to the db, create and register a Feathers service. app.use('messages', service({ name: 'message', Model: Message, paginate: { default: 2, max: 4 } })); // A basic error handler, just like Express app.use(errors.handler()); app.listen(3030); console.log('Feathers Message mongoose service running on 127.0.0.1:3030');
You can run this example by using npm start and going to localhost:3030/messages. You should see an empty array. That's because you don't have any messages yet but you now have full CRUD for your new message service, including mongoose validations!

