Merge pull request #1181 from raulriera/additional-variables-mongoose

Support for passing additional variables into mongoose
This commit is contained in:
Jim LAURIE 2018-05-30 10:41:11 +02:00 committed by GitHub
commit bae8073c7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,7 +39,8 @@ module.exports = function (strapi) {
port: 27017,
database: 'strapi',
authenticationDatabase: '',
ssl: false
ssl: false,
debug: false
},
/**
@ -50,10 +51,11 @@ module.exports = function (strapi) {
_.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-mongoose'}), (connection, connectionName) => {
const instance = new Mongoose();
const { uri, host, port, username, password, database } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose);
const { authenticationDatabase, ssl } = _.defaults(connection.options, strapi.config.hook.settings.mongoose);
const { authenticationDatabase, ssl, debug } = _.defaults(connection.options, strapi.config.hook.settings.mongoose);
// Connect to mongo database
const connectOptions = {};
const options = {};
if (!_.isEmpty(username)) {
connectOptions.user = username;
@ -67,10 +69,16 @@ module.exports = function (strapi) {
connectOptions.authSource = authenticationDatabase;
}
connectOptions.ssl = ssl === true || ssl === 'true';
connectOptions.ssl = Boolean(ssl);
options.debug = Boolean(debug);
instance.connect(uri || `mongodb://${host}:${port}/${database}`, connectOptions);
for (let key in options) {
instance.set(key, options[key])
}
// Handle error
instance.connection.on('error', error => {
if (error.message.indexOf(`:${port}`)) {