Files
ExpressJS-Mongo/mongo.js
2020-09-05 16:30:25 +02:00

59 lines
2.0 KiB
JavaScript

const mongodb = require('mongodb');
const assert = require('assert');
const mongoConfig = {
url: 'mongodb://localhost:27017',
username: 'express-user',
password: 'P@ssword1',
database: 'express-test'
};
class Mongo {
constructor() {
mongodb.MongoClient.connect(mongoConfig.url, (err, client) => {
assert.equal(null, err);
console.log('Connected successfuly to mongodb');
this.db = client.db(mongoConfig.database);
this.db.collection('test').find({}, (err, results) => {
results.forEach(console.log);
});
client.close();
});
}
find(collectionName, query, callback) {
this.db.collection(collectionName).find(query, (error, result) => {
assert.equal(null, error, `Unable to find ${collectionName} entities: ${error}.`);
console.log(`Entities ${collectionName} founded.`);
callback(result);
});
}
insert(collectionName, entity, callback) {
this.db.collection(collectionName).insert(entity, (error, result) => {
assert.equal(null, error, `Unable to insert ${collectionName} entity: ${error}.`);
console.log(`Entity ${collectionName} inserted.`);
callback(result);
});
}
update(collectionName, entity, query, callback) {
this.db.collection(collectionName).update(query, entity, (error, result) => {
assert.equal(null, error, `Unable to update ${collectionName} entity: ${error}.`);
console.log(`Entity ${collectionName} updated.`);
callback(result);
});
}
delete(collectionName, entityId, callback) {
this.db.collection(collectionName).deleteOne({id: entityId}, (error, result) => {
assert.equal(null, error, `Unable to delete ${collectionName} entity with id ${entityId}: ${error}.`);
console.log(`Entity ${collectionName} with id ${entityId} deleted.`);
callback(result);
});
}
}
module.exports = Mongo;