Changeset View
Changeset View
Standalone View
Standalone View
lib/datastore/db.js
"use strict"; | const Promise = require("bluebird"); | ||||
var Promise = require("bluebird"); | const MongoClient = require("mongodb").MongoClient; | ||||
var MongoClient = require("mongodb").MongoClient; | const DbsCommonPart = require("./mongo-api-abstract"); | ||||
var DbsCommonPart = require("./mongo-api-abstract"); | |||||
module.exports = function(App) { | module.exports = function(App) { | ||||
const priv = { db: null }; | const priv = { db: null }; | ||||
let client = null; | let client = null; | ||||
var DatastoreMongo = App.createChip(App.Sealious.Datastore, { | const DatastoreMongo = App.createChip(App.Sealious.Datastore, { | ||||
name: "mongo", | name: "mongo", | ||||
}); | }); | ||||
DatastoreMongo.start = function() { | DatastoreMongo.start = function() { | ||||
var self = this; | const self = this; | ||||
var config = App.ConfigManager.get("datastore_mongo"); | const config = App.ConfigManager.get("datastore_mongo"); | ||||
var url = `mongodb://${config.host}:${config.port}/${config.db_name}`; | const url = `mongodb://${config.host}:${config.port}/${config.db_name}`; | ||||
return Promise.promisify(MongoClient.connect)(url).then(function( | return Promise.promisify(MongoClient.connect)(url).then(_client => { | ||||
_client | |||||
) { | |||||
if (_client === null) { | if (_client === null) { | ||||
return Promise.reject( | return Promise.reject( | ||||
"MongoDB was not found, please make sure it's installed. Check https://docs.mongodb.org/manual/tutorial/ for more info." | "MongoDB was not found, please make sure it's installed. Check https://docs.mongodb.org/manual/tutorial/ for more info." | ||||
); | ); | ||||
} else { | } | ||||
client = _client; | client = _client; | ||||
priv.db = _client.db(config.db_name); | priv.db = _client.db(config.db_name); | ||||
return self.post_start(); | return self.post_start(); | ||||
} | |||||
}); | }); | ||||
}; | }; | ||||
DbsCommonPart(App, DatastoreMongo, priv); | DbsCommonPart(App, DatastoreMongo, priv); | ||||
DatastoreMongo.stop = function() { | DatastoreMongo.stop = function() { | ||||
client.close(); | client.close(); | ||||
}; | }; | ||||
return DatastoreMongo; | return DatastoreMongo; | ||||
}; | }; |