summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorotofune <otofune@gmail.com>2017-11-06 14:37:00 +0900
committerotofune <otofune@gmail.com>2017-11-06 14:37:24 +0900
commit7e81e0db6ac1289ae9504f7e3da5db6e56f41a51 (patch)
tree8f43f66a74ee6f9114f89b48262eeef5084fbaaf /src/db
parentupdate @prezzemolo/rap to 0.1.2 (diff)
downloadsharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.tar.gz
sharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.tar.bz2
sharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.zip
support GridFS
Diffstat (limited to 'src/db')
-rw-r--r--src/db/mongodb.ts35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/db/mongodb.ts b/src/db/mongodb.ts
index 6ee7f4534f..75f1a1d3c6 100644
--- a/src/db/mongodb.ts
+++ b/src/db/mongodb.ts
@@ -1,11 +1,38 @@
-import * as mongo from 'monk';
-
import config from '../conf';
const uri = config.mongodb.user && config.mongodb.pass
- ? `mongodb://${config.mongodb.user}:${config.mongodb.pass}@${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`
- : `mongodb://${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`;
+? `mongodb://${config.mongodb.user}:${config.mongodb.pass}@${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`
+: `mongodb://${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`;
+
+/**
+ * monk
+ */
+import * as mongo from 'monk';
const db = mongo(uri);
export default db;
+
+/**
+ * MongoDB native module (officialy)
+ */
+import * as mongodb from 'mongodb'
+
+let mdb: mongodb.Db;
+
+const nativeDbConn = async (): Promise<mongodb.Db> => {
+ if (mdb) return mdb;
+
+ const db = await ((): Promise<mongodb.Db> => new Promise((resolve, reject) => {
+ mongodb.MongoClient.connect(uri, (e, db) => {
+ if (e) return reject(e)
+ resolve(db)
+ })
+ }))()
+
+ mdb = db
+
+ return db
+}
+
+export { nativeDbConn }