Skip to content

Instantly share code, notes, and snippets.

@ycmjason ycmjason/db.js
Created Jun 27, 2018

Embed
What would you like to do?
A neat way to interact with mongoclient, without caring too many proxies.
const MongoClient = require('mongodb').MongoClient;
const DB_NAME = 'mydb';
const MONGO_URL = process.env.MONGO_URL;
const dbPromise = MongoClient.connect(
MONGO_URL,
{ useNewUrlParser: true },
).then(client => client.db(DB_NAME));
// if anything went wrong connecting db
dbPromise.catch(e => {
console.error(e);
console.error('Cannot connect to mongodb...');
process.exit(1);
});
module.exports = new Proxy({}, {
get(target, collectionName) {
return new Proxy({}, {
get(target, methodName) {
return async (...args) => {
const collection = await dbPromise.then(db => db.collection(collectionName));
return collection[methodName](...args);
};
},
});
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.