A Feathers service adapter for the Mongoose ORM extendet for using analog id

Downloads in past


000.0.27 years ago7 years agoMinified + gzip package size for feathers-mongoose-with-analog-id in KB


Greenkeeper badge
Build Status Code Climate Test Coverage Dependency Status Download Status Slack Status
Create a Mongoose ORM wrapped service for FeathersJS.


npm install feathers-mongoose --save


Please refer to the Feathers database adapter documentation for more details or directly at:

Getting Started

Creating an Mongoose service is this simple (make sure your MongoDB server is up and running):
var mongoose = require('mongoose');
var MongooseModel = require('./models/mymodel')
var mongooseService = require('feathers-mongoose');

mongoose.Promise = global.Promise;

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)

// Create a feathers instance.
const app = feathers()
  // Enable Socket.io
  // Enable REST services
  // Turn on JSON parser for REST services
  // 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({,
  Model: Message,
  paginate: {
    default: 2,
    max: 4

// Connect to the db, create and register a Feathers service with analogId, if analogId set some [fieldName] (unique) and [id] in request is not valid ObjectId then search by field with name [fieldName];
app.use('messages', service({,
  Model: Message,
  paginate: {
    default: 2,
    max: 4

// A basic error handler, just like Express

console.log('Feathers Message mongoose service running on');

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!