diff options
| author | otofune <otofune@gmail.com> | 2017-11-06 14:37:00 +0900 |
|---|---|---|
| committer | otofune <otofune@gmail.com> | 2017-11-06 14:37:24 +0900 |
| commit | 7e81e0db6ac1289ae9504f7e3da5db6e56f41a51 (patch) | |
| tree | 8f43f66a74ee6f9114f89b48262eeef5084fbaaf /src/db | |
| parent | update @prezzemolo/rap to 0.1.2 (diff) | |
| download | sharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.tar.gz sharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.tar.bz2 sharkey-7e81e0db6ac1289ae9504f7e3da5db6e56f41a51.zip | |
support GridFS
Diffstat (limited to 'src/db')
| -rw-r--r-- | src/db/mongodb.ts | 35 |
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 } |