nova-store/app/lib/db.js

28 lines
802 B
JavaScript
Raw Normal View History

import Database from "better-sqlite3";
import path from "node:path";
import fs from "node:fs";
// Singleton: evita abrir múltiples conexiones durante el hot-reload de next dev.
function createDb() {
const dataDir = path.join(process.cwd(), "data");
fs.mkdirSync(dataDir, { recursive: true });
const db = new Database(path.join(dataDir, "nova.db"));
db.pragma("journal_mode = WAL");
db.exec(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL DEFAULT '',
email TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);
`);
return db;
}
const g = globalThis;
const db = g.__novaDb ?? (g.__novaDb = createDb());
export default db;