crawlers and savers

This commit is contained in:
Senad Uka
2016-11-10 13:04:45 +01:00
parent 7a16a0191c
commit 5a819cc743
14 changed files with 2695 additions and 323 deletions

58
crawler/savers/mongo.js Normal file
View File

@@ -0,0 +1,58 @@
import MongoClient from 'mongodb';
export default class MongoSaver {
constructor(url) {
this.url = url;
}
connect() {
let saver = this;
return new Promise((resolve, reject) => {
if (!saver.ready) {
MongoClient.connect(saver.url, (err, db) => {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
reject(err);
} else {
console.log('Connection established to', url);
saver.db = db;
saver.collection = db.collection('results');
saver.ready = true;
resolve();
}
});
} else {
resolve();
}
});
}
save(results) {
let resultsForMongo = Object.keys(results).map((key) => {
return results[key]
});
this.collection.insert(resultsForMongo);
}
async close() {
try {
//Close connection
await this.disconnect();
} catch (e) {
console.log("error closing", e);
}
}
async disconnect() {
return new Promise((resolve, reject) => {
this.db.close();
resolve();
});
}
async open() {
await this.connect();
}
}