Mongo DB Fake Server

npm install mongodb-fs
5 downloads in the last week
92 downloads in the last month

What's mongodb-fs?

mongodb-fs is a fake, lightweight, seamlessly mongodb server for nodejs (fs stands for 'Fake Server', or 'File System').

Its goal is to act as a normal mongodb server, but with a simple json file instead of a database.

Because it's not so simple to work with mocks on the client side, this solution gives you mocks on the server side.

mongodb-fs can nicely replace a real mongodb server for unit tests phase.

All you have to do is to provide a mocks module when you start the db server, and go on with your client code.


$ npm install mongodb-fs


var mongoose = require('mongoose')
  , mongodbFs = require('mongodb-fs');

// Usual mongoose code to define a schema for contact entities
mongoose.model('Contact', {
  firstName: String,
  lastName: String

// Initialize the server
  port: 27027, // Feel free to match your settings
  mocks: { // The all database is here...
    fakedb: { // database name
      contacts: [ // a collection
          firstName: 'John',
          lastName: 'Doe'
          firstName: 'Forrest',
          lastName: 'Gump'
  // Additionnal options
  fork: true,         // force the server to run in a separate process (default: false)
  // fork is useful to deal with async hell (client and server in same main-loop)
  // Log optionnal configuration :
  log: {
    log4js: {         // log4js configuration
      appenders: [    // log4js appenders declaration (see log4js project for more informations)
          type: 'console',
          category: path.basename(__filename)
    category: path.basename(__filename), // category used for logger
    level: 'INFO'                        // log level

// Start the fake server
mongodbFs.start(function (err) {
  mongoose.connect('mongodb://localhost:27027/fakedb', // 'fakedb' should be available in mocks
    { server: { poolSize: 1 } }, // usual options
    function (err) {
    // Usual mongoose code to retreive all the contacts
    var Contact;
    Contact = mongoose.connection.model('Contact');
    Contact.find(function (err, contacts) {
      console.log('contacts :', contacts);
      mongoose.disconnect(function (err) { // clean death
        mongodbFs.stop(function (err) {

For a more complete example : have a look at the unit test


Supported operations : all queries, update, remove, insert

Only a few mongodb operators are supported by the moment (gt, gte, lt, gte, ne).

Enjoy !

npm loves you