1.0.2 • Published 7 years ago
koa-mongo-driver v1.0.2
koa-mongo-driver
MongoDB middleware developed on top of official node-mongodb-native.
Installation
NPM
npm install koa-mongo-driver --saveYarn
yarn add koa-mongo-driverYou will need a MongoDB instance running to be able to use this package.
Basic Usage
const Koa = require('koa');
const app = new Koa();
const mongo = require('koa-mongo-driver');
app.use(mongo());
app.use(async (ctx) => {
const collection = ctx.mongo.db('test').collection('objects');
ctx.body = await collection.insertOne({ content: 'Just another object.' });
});
app.listen(3000);See spec/koa-example.js to check a simple Koa application.
Custom URL Configurations
The mongo() function accepts as first argument an object that is used to define the connection URL for the MongoDB instance.
The host, port, and databaseName can be passed as described in the example below:
const Koa = require('koa');
const app = new Koa();
const mongo = require('koa-mongo-driver');
const urlOptions = {
url: 'my-mongodb-selfhosted.com',
port: 12345,
databaseName: 'myDatabase'
};
app.use(mongo(urlOptions));
app.use(async (ctx) => {
const collection = ctx.mongo.db('test').collection('objects');
ctx.body = await collection.insertOne({ content: 'Just another object.' });
});
app.listen(3000);Custom Connection Configurations
The mongo() function accepts as second argument an object that is used to define the MongoClient options.
Any configuration accepted by the node-mongodb-native can be passed. Check the available settings on MongoClient API Docs by MongoDB.
The next example describes how to open an authenticated connection.
const Koa = require('koa');
const app = new Koa();
const mongo = require('koa-mongo-driver');
const urlOptions = {
url: 'my-mongodb-selfhosted.com',
port: 12345,
databaseName: 'myDatabase'
};
const connectionOptions = {
auth: {
user: 'root',
password: 'toor'
},
authSource: 'admin',
authMechanism: 'PLAIN'
};
app.use(mongo(urlOptions, connectionOptions));
app.use(async (ctx) => {
const collection = ctx.mongo.db('test').collection('objects');
ctx.body = await collection.insertOne({ content: 'Just another object.' });
});
app.listen(3000);