-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdb.js
32 lines (29 loc) · 832 Bytes
/
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
const sid = require('shortid')
const SillyId = require('sillyid')
const sillid = new SillyId()
const redis = require('redis')
const client = redis.createClient()
client.on('error', function(err) {
if (err.code === 'ECONNREFUSED') throw err
else console.log('Error ' + err)
})
module.exports = class DB {
read(id) {
return new Promise((resolve, reject) => {
client.get(id, (err, res) => {
if (err) return reject(err)
else return resolve(res)
})
})
}
create(data, expiry, friendly) {
return new Promise((resolve, reject) => {
const expireAfter = parseInt(expiry, 10)
const id = friendly ? sillid.generate() : sid.generate()
client.set(id, data, 'EX', expireAfter, err => {
if (err) return reject(err)
else return resolve(id)
})
})
}
}