/
Krams
/
nodemon2
Обзор
Документация
Войти
/
Krams
/
nodemon2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/controllers/DbController.js
60 строк
2 KB
Иван Новиков
postgresql update
04 май 2026, 09:46
04 май 2026, 09:46
27e975d
Код
Авторство
О чём код?
import db from '../database.js'; function getEnvFlag(name, defaultValue = '0') { return String(process.env[name] ?? defaultValue).trim() === '1'; } function getEnvLower(name, defaultValue = '') { return String(process.env[name] ?? defaultValue).trim().toLowerCase(); } export async function dbWhoAmIController(req, res) { const readMode = getEnvLower('DB_READ_MODE', 'sqlite'); const writeMode = getEnvLower('DB_WRITE_MODE', 'sqlite'); const shadowCompare = getEnvFlag('DB_SHADOW_COMPARE', '0'); const disableSqliteFallback = getEnvFlag('DB_DISABLE_SQLITE_FALLBACK', '0'); const hasPgConfig = Boolean(process.env.PGHOST || process.env.PGDATABASE || process.env.DATABASE_URL); const sqliteFile = process.env.SQLITE_DB_FILE || './nodemon.db'; try { const row = await new Promise((resolve, reject) => { db.get('SELECT CURRENT_TIMESTAMP as now', [], (err, result) => { if (err) return reject(err); resolve(result); }); }); res.json({ ok: true, readMode, writeMode, shadowCompare, disableSqliteFallback, pgEnvConfigured: hasPgConfig, sqliteFile, probe: { sql: 'SELECT CURRENT_TIMESTAMP as now', now: row?.now ?? null, }, note: readMode === 'postgres' && !disableSqliteFallback ? 'Fallback to SQLite is enabled: a Postgres error may silently read from SQLite. Set DB_DISABLE_SQLITE_FALLBACK=1 to make this strict.' : undefined, }); } catch (error) { res.status(500).json({ ok: false, readMode, writeMode, shadowCompare, disableSqliteFallback, pgEnvConfigured: hasPgConfig, sqliteFile, error: { message: error?.message || String(error), name: error?.name, }, }); } }