import { MongoClient } from "mongodb" const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env let cached = global.mongo if (!cached) { cached = global.mongo = { conn: null, promise: null } } export default async function connectToDatabase() { if (cached.conn) { return cached.conn } if (!cached.promise) { const opts = { useNewUrlParser: true, useUnifiedTopology: true, } cached.promise = await MongoClient.connect(MONGODB_URI, opts).then(client => { return { client, coll: client.db(MONGODB_DB).collection(MONGODB_COLLECTION), } }) } cached.conn = await cached.promise return cached.conn }