Files
old-kivi/crawler/savers/mongo.js
2016-11-10 14:03:58 +01:00

59 lines
1.2 KiB
JavaScript

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', this.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();
}
}