node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »

moleculer-db-adapter-mongoose

Moleculer logo

moleculer-db-adapter-mongoose NPM version

Mongoose adapter for Moleculer DB service

Features

Install

$ npm install moleculer-db moleculer-db-adapter-mongoose --save

Usage

"use strict";
 
const { ServiceBroker } = require("moleculer");
const DbService = require("moleculer-db");
const MongooseAdapter = require("moleculer-db-adapter-mongoose");
const mongoose = require("mongoose");
 
const broker = new ServiceBroker();
 
// Create a Mongoose service for `post` entities
broker.createService({
    name: "posts",
    mixins: [DbService],
    adapter: new MongooseAdapter("mongodb://localhost/moleculer-demo"),
    model: mongoose.model("Post", mongoose.Schema({
        title: { type: String },
        content: { type: String },
        votes: { type: Number, default: 0}
    }))
});
 
 
broker.start()
// Create a new post
.then(() => broker.call("posts.create", {
    title: "My first post",
    content: "Lorem ipsum...",
    votes: 0
}))
 
// Get all posts
.then(() => broker.call("posts.find").then(console.log));

Options

The constructor options need to be a String or an Object.

Example with connection URI

new MongooseAdapter("mongodb://localhost/moleculer-db")

Example with connection options

new MongooseAdapter({
    uri: "mongodb://db-server-hostname/my-db",
    options: {
        user: process.env.MONGO_USERNAME,
        pass: process.env.MONGO_PASSWORD
        server: {
            socketOptions: {
                keepAlive: 1
            }
        }
    })

Test

$ npm test

In development with watching

$ npm run ci

License

The project is available under the MIT license.

Contact

Copyright (c) 2016-2017 Ice Services

@ice-services @MoleculerJS