-
Notifications
You must be signed in to change notification settings - Fork 0
/
expensedb.js
38 lines (34 loc) · 888 Bytes
/
expensedb.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
var store = require("nedb")
var fs = require('fs')
var expenses = new store({ filename: "expense.db", autoload: true })
expenses.find({}, function (err, docs) {
if (docs.length == 0) {
loadExpenses()
}
})
function loadExpenses() {
readCsv("data.csv", function (data) {
console.log(data)
data.forEach(function (rec) {
item = {}
item.name = rec[0]
item.amount = parseFloat(rec[1])
item.spend_date = new Date(rec[2])
item.category = rec[3]
expenses.insert(item, function (err, doc) {
console.log('Inserted', doc.name, 'with ID', doc._id)
})
})
})
}
function readCsv(file, callback) {
fs.readFile(file, 'utf-8', function (err, data) {
if (err) throw err
var lines = data.split('\r\n')
var result = lines.map(function (line) {
return line.split(',')
})
callback(result)
})
}
module.exports = expenses