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

    mongowrappublic

    mongowrap

    A simple wrapper for getting mongodb connections, specialized for docker based mongo deployment

    TOC

    #getConnection

    should get config values from the environment.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
    process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
    process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', function(err, db) {
        if (err) console.error(err);
        assert(!err);
        assert.equal(db.databaseName, 'foo');
        assert(db instanceof mongodb.Db);
        done();
    });

    should allow you to use different environment keys.

    var config = {
        url: "MONGO_ALT_URL",
        user: "MONGO_ALT_USER",
        password: "MONGO_ALT_PASSWORD"
    };
    process.env[config.url] = 'tcp://127.0.0.1:27017';
    process.env[config.user] = 'admin';
    process.env[config.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', function(err, db) {
        if (err) console.error(err);
        assert(!err);
        assert.equal(db.databaseName, 'foo');
        assert(db instanceof mongodb.Db);
        done();
    });

    should use provided values.

    var config = {
        type: "hardcoded",
        url: "tcp://127.0.0.1:27017",
        user: "admin",
        password: "adminpass"
    };
    var mongo = mongowrap.getConnection(config);
    mongo.getDb('foo', function(err, db) {
        if (err) console.error(err);
        assert(!err);
        assert.equal(db.databaseName, 'foo');
        assert(db instanceof mongodb.Db);
        done();
    });

    #getDb()

    w/ auth

    should get an instance of a mongodb Db object.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
    process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
    process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', function(err, db) {
        if (err) console.error(err);
        assert(!err);
        assert.equal(db.databaseName, 'foo');
        assert(db instanceof mongodb.Db);
        done();
    });

    should provide collection access.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
    process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
    process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', function(err, db) {
        assert(!err);
        var collection = db.collection('bar');
        assert(collection.collectionName !== undefined);
        assert(collection.collectionName === 'bar');
        done();
    });

    w/o auth

    should get an instance of a mongodb Db object.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', false, function(err, db) {
        assert(!err);
        assert.equal(db.databaseName, 'foo');
        assert(db instanceof mongodb.Db);
        done();
    });

    should provide collection access.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
    var mongo = mongowrap.getConnection();
    mongo.getDb('foo', false, function(err, db) {
        assert(!err);
        var collection = db.collection('bar');
        assert(collection.collectionName !== undefined);
        assert(collection.collectionName === 'bar');
        done();
    });

    #getCollection()

    w/ auth

    should get an instance of a mongodb Collection object.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
    process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
    process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getCollection('foo', 'bar', function(err, collection) {
        assert(!err);
        assert(collection.collectionName !== undefined);
        assert(collection.collectionName === 'bar');
        done();
    });

    should be able to insert a record.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
    process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
    process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
    var mongo = mongowrap.getConnection();
    mongo.getCollection('foo', 'bar', function(err, collection) {
        assert(!err);
        collection.insert({foo: "bar"}, done);
    });

    w/o auth

    should get an instance of a mongodb Collection object.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
    var mongo = mongowrap.getConnection();
    mongo.getCollection('foo', 'bar', false, function(err, collection) {
        assert(!err);
        assert(collection.collectionName !== undefined);
        assert(collection.collectionName === 'bar');
        done();
    });

    should be able to insert a record.

    process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
    var mongo = mongowrap.getConnection();
    mongo.getCollection('foo', 'bar', false, function(err, collection) {
        assert(!err);
        collection.insert({foo: "bar"}, done);
    });

    #ensureObjectId()

    should convert a valid string to an ObjectId.

    var newId = new ObjectId();
    var ensured = mongo.ensureObjectId(newId.toHexString());
    assert(newId.equals(ensured));

    should return the same ObjectId if it already is an ObjectId instance.

    var newId = new ObjectId();
    var ensured = mongo.ensureObjectId(newId);
    assert(newId === ensured);

    should return null if the string passed is an invalid ObjectId string.

    var ensured = mongo.ensureObjectId('foo');
    assert(ensured === null);

    Keywords

    none

    install

    npm i mongowrap

    Downloadsweekly downloads

    9

    version

    1.0.1

    license

    none

    last publish

    collaborators

    • avatar