mirror of
https://github.com/SkalaraAI/waitlist.git
synced 2025-04-09 21:20:15 -04:00
36 lines
840 B
JavaScript
36 lines
840 B
JavaScript
// lib/db.js
|
|
import { MongoClient } from "mongodb";
|
|
|
|
const uri = process.env.MONGODB_URI; // Connection string from .env.local
|
|
const options = {
|
|
useUnifiedTopology: true,
|
|
useNewUrlParser: true,
|
|
};
|
|
|
|
let client;
|
|
let clientPromise;
|
|
|
|
if (!process.env.MONGODB_URI) {
|
|
throw new Error("Please add your MongoDB URI to .env.local");
|
|
}
|
|
|
|
if (process.env.NODE_ENV === "development") {
|
|
// In development mode, use a global variable to keep the database connection
|
|
// open across hot reloads
|
|
if (!global.mongo) {
|
|
global.mongo = { conn: null, promise: null };
|
|
}
|
|
client = global.mongo;
|
|
} else {
|
|
// In production mode, create a new connection for every request
|
|
client = {};
|
|
}
|
|
|
|
if (!client.promise) {
|
|
client.promise = MongoClient.connect(uri, options).then((mongoClient) => {
|
|
return mongoClient;
|
|
});
|
|
}
|
|
|
|
export default client;
|