37 lines
900 B
JavaScript
37 lines
900 B
JavaScript
import sqlite3 from 'sqlite3';
|
|
import { open } from 'sqlite';
|
|
import { dirname } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const DB_PATH = __dirname + '/data/hospital.db';
|
|
|
|
export async function openDb() {
|
|
const db = await open({
|
|
filename: DB_PATH,
|
|
driver: sqlite3.Database,
|
|
});
|
|
|
|
await db.exec(`
|
|
CREATE TABLE IF NOT EXISTS kv (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT
|
|
);
|
|
`);
|
|
|
|
return db;
|
|
}
|
|
|
|
export async function getValue(key) {
|
|
const db = await openDb();
|
|
const row = await db.get('SELECT value FROM kv WHERE key = ?', key);
|
|
await db.close();
|
|
return row?.value ?? null;
|
|
}
|
|
|
|
export async function setValue(key, value) {
|
|
const db = await openDb();
|
|
await db.run('INSERT INTO kv (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value', key, value);
|
|
await db.close();
|
|
}
|