--- name: reference_sqlite_node description: "БД-стек — приложение использует встроенный node:sqlite, а не better-sqlite3; путь к живой БД" metadata: node_type: memory type: reference originSessionId: a705e035-e600-43a2-b98c-197923986186 --- Приложение работает на **встроенном `node:sqlite`** (`const { DatabaseSync } = require('node:sqlite')`), а **не** на `better-sqlite3` — последний в дереве не установлен (require падает MODULE_NOT_FOUND). Это исправляет устаревшую запись «better-sqlite3» в [[project_status.md]] и индексе MEMORY.md. - Подключение: `backend/src/db/db.js` (`new DatabaseSync(dbPath)`). - Конфиг пути: `backend/src/config.js` → `DB_PATH` (по умолчанию `backend/data/learnspace.db`). - Живая БД: **`backend/data/learnspace.db`** (~5.2 МБ). В дереве есть и другие копии (`data/learnspace.db`, `backend/src/data/...`, `backend/src/db/data/...`) — это НЕ боевая. - Node 24 → `node:sqlite` доступен (экспериментальный, кидает ExperimentalWarning в stderr). API node:sqlite: `db.prepare(sql).all()/.get()/.run()`; для readonly — `new DatabaseSync(path, { readOnly: true })`. Замечание по окружению: в Bash-туле кириллический путь `Тесты` иногда искажается (`Тесты`→`"5ABK`), из-за чего node-скрипты падают на ENOENT/MODULE_NOT_FOUND. PowerShell путь не ломает.