HTMLify
serverSelection.js
Views: 9 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /*! * Module dependencies. */ 'use strict'; const MongooseError = require('./mongooseError'); const allServersUnknown = require('../helpers/topology/allServersUnknown'); const isAtlas = require('../helpers/topology/isAtlas'); /*! * ignore */ const atlasMessage = 'Could not connect to any servers in your MongoDB Atlas cluster. ' + 'One common reason is that you\'re trying to access the database from ' + 'an IP that isn\'t whitelisted. Make sure your current IP address is on your Atlas ' + 'cluster\'s IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/'; class MongooseServerSelectionError extends MongooseError { /** * MongooseServerSelectionError constructor * * @api private */ assimilateError(err) { const reason = err.reason; // Special message for a case that is likely due to IP whitelisting issues. const isAtlasWhitelistError = isAtlas(reason) && allServersUnknown(reason) && err.message.indexOf('bad auth') === -1; this.message = isAtlasWhitelistError ? atlasMessage : err.message; for (const key in err) { if (key !== 'name') { this[key] = err[key]; } } return this; } } Object.defineProperty(MongooseServerSelectionError.prototype, 'name', { value: 'MongooseServerSelectionError' }); module.exports = MongooseServerSelectionError; |