---
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 путь не ломает.
