-
Notifications
You must be signed in to change notification settings - Fork 0
/
mongodb.ts
38 lines (31 loc) · 976 Bytes
/
mongodb.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var MongoClient = require("mongodb").MongoClient
const uri = process.env.MONGOURL
const options = {
useUnifiedTopology: true,
useNewUrlParser: true,
}
let client = null;
let clientPromise
if (!process.env.MONGOURL) {
throw new Error("Please add your Mongo URI to .env.local")
}
if (process.env.NODE_ENV === "development")
{
// In development mode, use a global variable so that the value
// is preserved across module reloads caused by HMR (Hot Module Replacement).
if (!global._mongoClientPromise)
{
client = new MongoClient(uri, options)
global._mongoClientPromise = client.connect()
}
clientPromise = global._mongoClientPromise
}
else
{
// In production mode, it's best to not use a global variable.
client = new MongoClient(uri, options)
clientPromise = client.connect()
}
// Export a module-scoped MongoClient promise. By doing this in a
// separate module, the client can be shared across functions.
export default clientPromise