title: Error connecting to Azure: Illegal character in password with mongoose 5.0.1 but works in 4.13.9
body: <p>I have a node.js application that is deployed to azure using CosmosDB and the MongoDB API.  My application uses mongoose which works seamlessly in 4.13.9.</p>
  
  <p>My application that works connects as follows:</p>
  
  <pre><code>var configDB = require('./config/database');
  var mongoose = require('mongoose');
  mongoose.connect(configDB.url, { useMongoClient: true } );
  mongoose.Promise = global.Promise;
  var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'MongoDB connection error:'));
  </code></pre>
  
  <p>the config/database file is defined as follows (changed username, password, DB to protect the innocent):</p>
  
  <pre><code>module.exports = {
      'url': 'mongodb://azureusername:azurepassword@myazuredb.documents.azure.com:10255/?ssl=true'
  }
  </code></pre>
  
  <p>Now the problem comes when I install mongoose 5.0.1.  I remove the useMongoClient option from the connect and got rid of the promise so my connect code is now:</p>
  
  <pre><code>mongoose.connect(configDB.url);
  var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'MongoDB connection error:'));
  </code></pre>
  
  <p>When this runs I get the following in the console:</p>
  
  <blockquote>
    <p>(node:21392) UnhandledPromiseRejectionWarning: Unhandled promise
    rejection (rejection id: 2): Error: Password contains an illegal
    unescaped character</p>
  </blockquote>
  
  <p>I can even comment out the connection code to where it is only the mongoose.connect and that is what is giving the error.  What am I doing wrong?  Is there a breaking change in 5.0.1 that I need to account for?  As a side note that may or may not be related, I saw some notes about now giving a callback instead of using promises so if someone has an example of how they do that in a Node/Express app that would be great, but it doesn't seem like that's the isee when I'm getting an error reported on the connect about an illegal character.
  NOTE: The config file is exactly the same when running against 4.13.9 or 5.0.1 so I know the password is valid and it is not the issue. </p>