1.0.1 • Published 4 years ago
@potentii/mongo-connection v1.0.1
Mongo connection
A utility to help connect to MongoDB using mongoose.
Content
Installing
To install, simply do:
npm i @potentii/mongo-connection
Make sure you have also installed mongoose in your project, as it is a peer dependency.
Using
To connect using mongoose, simply do:
const { mongo, ConnOpts } = require('@potentii/mongo-connection');
const opts = new ConnOpts()
.host('127.0.0.1')
.port('27017');
mongo.connect(opts)
// 'pool' is the mongoose connection pool
// now the 'mongo' singleton stores this reference, so you can access it from anywhere, just calling 'mongo.pool'
.then(pool => {
// use as pool.model('User', new Schema(...))
// or as mongo.pool.model('User', new Schema(...))
});
API
mongo
It's a singleton that holds the reference to the main MongoPool instance.
Establishing a new connection at the start of the application:
const { mongo, ConnOpts } = require('@potentii/mongo-connection');
const opts = new ConnOpts(); // complete with parameters
mongo.connect(opts)
.then(...);
Then you can access the connection pool using:
const { mongo, ConnOpts } = require('@potentii/mongo-connection');
mongo.pool.model('User', new Schema(...));
ConnOpts
Connection options builder utility.
Instance methods
- user( user :
String
) :ConnOpts
- Sets the username. - pass( pass :
String
) :ConnOpts
- Sets the password. - host( host :
String
) :ConnOpts
- Sets the hostname (The default is127.0.0.1
). - port( port :
String
) :ConnOpts
- Sets the port number (The default is27017
). - dbName( dbName :
String
) :ConnOpts
- Sets the database name. - authSource( authSource :
String
) :ConnOpts
- Sets the authentication source collection (The default isadmin
). - withoutAuthOnUrl( withoutAuthOnUrl :
Boolean
) :ConnOpts
- Sets if the connection string should not have authentication details (may not work in some environments)__(The default isfalse
). - poolSize( poolSize :
Number
) :ConnOpts
- Sets the size of the pool (The default is6
). - isSrv( isSrv :
String|Boolean
) :ConnOpts
- Tells if the server uses SRV (MongoDB Atlas for example)__(The default isfalse
).
Static methods
- ConnOpts.fromEnv( ) - Builds a new ConnOpts from the environment variables.
- MONGO_USER - The username
- MONGO_PASS - The password
- MONGO_HOST - The hostname
- MONGO_PORT - The port
- MONGO_DB_NAME - The database name
- MONGO_AUTH_SOURCE - The authentication collection name
- MONGO_WITHOUT_AUTH_ON_URL - If it should not use authentication on the connection string
- MONGO_POOL_SIZE - The size of the pool
- MONGO_IS_SRV - If it is SRV
MongoPool
Instances of this class connects to the database, and holds the connection pool reference for later use.
Instance properties
- isConnected :
Boolean
- Tells if there is a connection present. - pool :
mongoose.Connection
- The reference to the mongoose connection.
Instance methods
- connect( opts :
ConnOpts
, [promiseLibrary] :Function|*
) :Promisse<mongoose.Connection>
- Connects to the database using the opts. (promiseLibrary
defaults to the standard JavaScriptPromise
implementation). - disconnect( ) :
Promise<void>
- Disconnects from the database.