mirror of
https://github.com/MedzikUser/gatsby-pingbot
synced 2024-08-15 03:20:27 +00:00
33 lines
685 B
JavaScript
33 lines
685 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
|
|
}
|