From 74b31df52f6fb30dc72c3c7871db42d4a21f9f56 Mon Sep 17 00:00:00 2001 From: Colin Sagan Date: Mon, 24 Sep 2018 12:06:40 -0300 Subject: [PATCH] fix: More robust parsing of mongodb connection string. Use new url parser. (#1002) * More robust parsing of mongodb connection string. Use new url parser. * Set mongodb-core as a dependency when generating a mongodb connection --- .../generator-feathers/generators/connection/index.js | 1 + .../generators/connection/templates/mongodb.js | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/generator-feathers/generators/connection/index.js b/packages/generator-feathers/generators/connection/index.js index ae39a458f3..84c78a00d3 100644 --- a/packages/generator-feathers/generators/connection/index.js +++ b/packages/generator-feathers/generators/connection/index.js @@ -68,6 +68,7 @@ module.exports = class ConnectionGenerator extends Generator { case 'mongodb': this.dependencies.push(adapter); + this.dependencies.push('mongodb-core'); return connectionString; case 'mysql': diff --git a/packages/generator-feathers/generators/connection/templates/mongodb.js b/packages/generator-feathers/generators/connection/templates/mongodb.js index 006bc2293f..0f96be6176 100644 --- a/packages/generator-feathers/generators/connection/templates/mongodb.js +++ b/packages/generator-feathers/generators/connection/templates/mongodb.js @@ -1,15 +1,15 @@ -const url = require('url'); +const parse = require('mongodb-core').parseConnectionString; const MongoClient = require('mongodb').MongoClient; module.exports = function (app) { const config = app.get('mongodb'); - const dbName = url.parse(config).path.substring(1); - const promise = MongoClient.connect(config).then(client => { + const promise = MongoClient.connect(config, { useNewUrlParser: true }).then(client => { // For mongodb <= 2.2 if(client.collection) { return client; } - + + const dbName = parse(config, () => {}); return client.db(dbName); });