37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { MongoClient, MongoClientOptions } from 'mongodb';
|
|
|
|
const MONGOHOST = process.env.MONGOHOST || 'localhost';
|
|
const MONGOPORT = process.env.MONGOPORT || '27017';
|
|
const MONGOAUTH = process.env.MONGOAUTH === 'true';
|
|
const MONGOUSRP = process.env.MONGOUSRP || '';
|
|
export const MONGOBASE = process.env.MONGOBASE || 'medizin';
|
|
|
|
const MONGO_URL = MONGOAUTH
|
|
? `mongodb://${MONGOUSRP}@${MONGOHOST}:${MONGOPORT}/?authSource=admin`
|
|
: `mongodb://${MONGOHOST}:${MONGOPORT}`;
|
|
|
|
console.log("auth:", MONGOAUTH, "url:", MONGO_URL)
|
|
const options: MongoClientOptions = {};
|
|
|
|
let client: MongoClient;
|
|
let clientPromise: Promise<MongoClient>;
|
|
|
|
declare global {
|
|
// eslint-disable-next-line no-var
|
|
var _mongoClientPromise: Promise<MongoClient> | undefined;
|
|
}
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
// In development, use a global variable to preserve the connection across HMR reloads
|
|
if (!global._mongoClientPromise) {
|
|
client = new MongoClient(MONGO_URL, options);
|
|
global._mongoClientPromise = client.connect();
|
|
}
|
|
clientPromise = global._mongoClientPromise;
|
|
} else {
|
|
client = new MongoClient(MONGO_URL, options);
|
|
clientPromise = client.connect();
|
|
}
|
|
|
|
export default clientPromise;
|