Skip to content

Instantly share code, notes, and snippets.

@ryctabo-condorlabs
Created January 29, 2020 19:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryctabo-condorlabs/d142e57ff2bba102e56e64029804fdb7 to your computer and use it in GitHub Desktop.
Save ryctabo-condorlabs/d142e57ff2bba102e56e64029804fdb7 to your computer and use it in GitHub Desktop.
Other example connecting with MongoDB from MongoDB Condorlabs Helper 🚀
module.exports = {
settings: {
host: 'mongodb0.example.com,mongodb1.example.com,mongodb2.example.com',
port: 27017,
database: 'database',
user: 'username',
password: 'password',
replicaSet: 'mongodb.example-shard-0',
ssl: true,
authSource: 'admin'
},
mongoSchemaDefinition: {
name: String,
email: String,
pass: String
},
mongoModelName: 'users'
};
const {
settings,
mongoSchemaDefinition,
mongoModelName
} = require('./constants');
const timeoutError = (ms, errorMessage) => new Promise((resolve, reject) => setTimeout(() => {
reject(new Error(errorMessage));
}, ms));
try {
// init mongo client
let mongodb = require('./../library')(settings);
(async () => {
// Get Mongo client instance (SKIP CONNECTION TO HOST)
console.log(`isConnected(before): ${mongodb._isConnected()}`);
// PREPARE MODEL
let testSchema = mongodb.mongoose.Schema(mongoSchemaDefinition);
let testModel = mongodb.mongoose.model(mongoModelName, testSchema);
console.log(`user MODEL was set`);
// connect to Mongo
await mongodb.getClient();
console.log(`isConnected(after): ${mongodb._isConnected()}`);
// QUERY DATA IN COLLECTION
const res = await Promise.race([
timeoutError(5000, 'Timeout error getting the Test Model'),
testModel.findOne({})
]);
// VALIDATE FOUND DATA
if (res !== null) {
console.log(`TESTING OK!!!`);
}
else {
console.log(`TESTING WAS BAD :(`);
}
process.exit(1);
})();
} catch (error) {
console.error(error)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment