Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    mongodb-uripublic

    mongodb-uri

    Parse and format MongoDB URIs of the form:

    mongodb://[username[:password]@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database]][?options]

    Note that there are two minor differences between this format and the standard MongoDB connect string URI format:

    1. password is optional even when a username is supplied
    2. The slash before the database is not required when leaving out the database but specifying options

    Neither of these differences should prevent this library from parsing any URI conforming to the standard format.

    Usage

    parse

    Takes a URI string and returns a URI object of the form:

    {
      scheme: !String,
      username: String=,
      password: String=,
      hosts: [ { host: !String, port: Number= }, ... ],
      database: String=,
      options: Object=
    }

    scheme and hosts will always be present. Other fields will only be present in the result if they were present in the input.

    Example

    var mongodbUri = require('mongodb-uri');
    var uri = 'mongodb://user%3An%40me:p%40ssword@host:1234/d%40tabase?authSource=%40dmin';
    var uriObject = mongodbUri.parse(uri);
    console.log(JSON.stringify(uriObject, null, 2));
    {
      "scheme": "mongodb",
      "hosts": [
        {
          "host": "host",
          "port": 1234
        }
      ],
      "username": "user:n@me",
      "password": "p@ssword",
      "options": {
        "authSource": "@dmin"
      },
      "database": "d@tabase"
    }

    format

    Takes a URI object and returns a URI string.

    Example

    var mongodbUri = require('mongodb-uri');
    var uri = mongodbUri.format(
            {
                username: 'user:n@me',
                password: 'p@ssword',
                hosts: [
                    {
                        host: 'host',
                        port: 1234
                    }
                ],
                database: 'd@tabase',
                options: {
                    authSource: '@dmin'
                }
            }
    );
    console.log(uri);
    mongodb://user%3An%40me:p%40ssword@host:1234/d%40tabase?authSource=%40dmin

    formatMongoose

    Takes either a URI object or string and returns a Mongoose connection string. Specifically, instead of listing all hosts and ports in a single URI, a Mongoose connection string contains a list of URIs each with a single host and port pair.

    Useful in environments where a MongoDB URI environment variable is provided, but needs to be programmatically transformed into a string digestible by mongoose.connect()--for example, when deploying to a PaaS like Heroku using a MongoDB add-on like MongoLab.

    Example

    var mongoose = require('mongoose');
    var mongodbUri = require('mongodb-uri');
     
    // A MongoDB URI, not compatible with Mongoose because it lists multiple hosts in the address 
    // Could be pulled from an environment variable or config file 
    var uri = 'mongodb://username:password@host1:1234,host2:5678/database';
     
    // Reformat to a Mongoose connect string and connect() 
    var mongooseConnectString = mongodbUri.formatMongoose(uri);
    mongoose.connect(mongooseConnectString);
     
    // Test for connection success 
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'Connection error: '));
    db.once('open', function callback () {
        console.log('Successfully connected to MongoDB');
    });

    install

    npm i mongodb-uri

    Downloadslast 7 days

    25,640

    version

    0.9.7

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar