gatsby-pingbot/api/lib/dbConnect.js

33 lines
684 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
}