-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb.js
76 lines (72 loc) · 1.55 KB
/
db.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
var conf = require('./conf');
var MongoClient = require('mongodb').MongoClient;
var openConnection;
var connect = function (callback) {
if (!openConnection) {
MongoClient.connect(conf.dbURL, function(err, db) {
if (!err) {
openConnection = db;
console.log('connected to ' + conf.dbURL);
return callback(err, db);
} else {
return callback(err);
}
});
} else {
return callback(null, openConnection);
}
}
var openConnection = connect(function(err, db) {
if (!err) {
return db;
} else {
console.log(err);
}
});
exports.close = function(callback) {
if (openConnection) {
openConnection.close(function(err) {
callback(err);
});
} else {
if (callback) {
callback('no connection to close');
}
}
}
exports.insert = function(coll, obj, callback) {
// make sure we're connected
connect(function(err, db) {
if (!err) {
var collection = db.collection(coll);
collection.insert(obj, function(err, res) {
if (!err) {
callback(null, res);
} else {
callback(err);
}
});
} else {
callback(err);
}
});
};
exports.upsert = function(coll, query, obj, callback) {
// make sure we're connected
connect(function(err, db) {
if (!err) {
var collection = db.collection(coll);
collection.update(query, obj, {upsert : true}, function(err, res) {
if (!err) {
callback(null, res);
} else {
callback(err);
}
});
} else {
callback(err);
}
});
};
exports.find = function(coll, query, projection) {
}