gatsby-pingbot/lib/dbConnect.js

36 lines
689 B
JavaScript

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
}