diff options
Diffstat (limited to 'db/sqlite.js')
| -rw-r--r-- | db/sqlite.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/db/sqlite.js b/db/sqlite.js new file mode 100644 index 0000000..0912101 --- /dev/null +++ b/db/sqlite.js @@ -0,0 +1,60 @@ +'use strict' + +const path = require('path') +const sqlite3 = require('sqlite3') + +const db = new sqlite3.Database(path.resolve(__dirname, '../count.db')) + +db.run(`CREATE TABLE IF NOT EXISTS tb_count ( + id INTEGER PRIMARY KEY AUTOINCREMENT + NOT NULL + UNIQUE, + name VARCHAR (32) NOT NULL + UNIQUE, + num BIGINT NOT NULL + DEFAULT (0) +);`) + +function getNum(name) { + return new Promise((resolve, reject) => { + db.get('SELECT `name`, `num` from tb_count WHERE `name` = ?', name, (err, row) => { + if (err) reject(err) + + resolve(row || { name, num: 0 }) + }) + }) +} + +function getAll(name) { + return new Promise((resolve, reject) => { + db.get('SELECT * from tb_count', (err, row) => { + if (err) reject(err) + + resolve(row) + }) + }) +} + +function setNum(name, num) { + return new Promise((resolve, reject) => { + db.run(`INSERT INTO tb_count(\`name\`, \`num\`) + VALUES($name, $num) + ON CONFLICT(name) DO + UPDATE SET \`num\` = $num;` + , { + $name: name, + $num: num + } + , (err, row) => { + if (err) reject(err) + + resolve(row) + }) + }) +} + +module.exports = { + getNum, + getAll, + setNum +}
\ No newline at end of file |