🚀 DAY 5 OF LAUNCH WEEK:Introducing Webhook Events for Alert Changes.Learn more →
Socket
Book a DemoInstallSign in
Socket

mongodb-uri

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb-uri

A parser and formatter for MongoDB URIs.

latest
Source
npmnpm
Version
0.9.7
Version published
Weekly downloads
219K
-3%
Maintainers
1
Weekly downloads
 
Created
Source

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:

  • password is optional even when a username is supplied
  • 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');
});

Keywords

mongodb

FAQs

Package last updated on 11 Jun 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts