Add src folder and correct base repository functions.

This commit is contained in:
Pierre THIERRY
2020-09-05 19:18:51 +02:00
parent 80253cabf8
commit c618675a9a
4 changed files with 30 additions and 21 deletions

19
src/js/app.js Normal file
View File

@@ -0,0 +1,19 @@
const express = require('express');
const MongoClient = require('./mongoClient');
const app = express();
const port = 3000;
const mongoClient = new MongoClient();
app.get('/test', (request, response) => {
mongoClient.insert('test', {creationDate: new Date()}, () => {
mongoClient.find('test', {}, results => {
console.log(results);
response.send(JSON.stringify(results));
});
});
});
app.listen(port, () => console.log('Mock is listening at port ', port, '\n'));

61
src/js/mongoClient.js Normal file
View File

@@ -0,0 +1,61 @@
const mongodb = require('mongodb');
const assert = require('assert');
const mongoConfig = {
url: 'mongodb://localhost:27017',
username: 'express-user',
password: 'P@ssword1',
database: 'express-test'
};
class MongoClient {
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).toArray()
.then(results => {
console.log(`Entities ${collectionName} founded.`);
console.log(results);
callback(results);
})
.catch(error => console.error(error));
}
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 = MongoClient;