node-mongod-runner
Nodejs runner for mongod with ephemeralForTest storage type and guaranteed listening port.
The process will be stopped on SIGINT
or SIGTERM
signals.
Usage
const mongodRunner = require('node-mongod-runner');
const mongodb = require('mongodb');
mongodRunner().then(({ connectionUri }) => {
return mongodb.connect(`${connectionUri}/test_db`);
})
-
Passing some suggestion for port:
mongodRunner({
port: 27101,
})
If the port
is not free a random one will be generated and returned.
-
Listening only on localhost:
mongodRunner({
host: 'localhost',
})
-
Use a different version of MongoDB:
mongodRunner({
version: '3.2.0',
})
This might take a while because it needs to download the mongod binary.
So, if used in Mocha tests you need to consider setting a timeout.
Default configuration
{
"port": 27017,
"host": "0.0.0.0"
}
API
mongodRunner({ port, host, version })
Returns a promise
that will resolve an object containing connectionUri
and port
.
{
connectionUri
port
kill
}
mongoRunner.createMongoClient({ connectionUri })
It takes a connectionUri
and it creates a mongodb connection to a random database.
It returns a Promise
that will resolve to an object containing the connectionUri
that includes
the random generated database name.
{
connectionUri
mongoClient
}