From 18c81fb8bb4ba3d29f5fb602d1cd7bf6c228c09a Mon Sep 17 00:00:00 2001 From: CN-JS-HuiBai Date: Sat, 11 Apr 2026 17:53:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/app.js | 1 + server/db-schema-check.js | 4 ++-- server/index.js | 10 +++++----- server/init-db.js | 2 ++ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/public/js/app.js b/public/js/app.js index a5ee8bc..a4b4111 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -2114,6 +2114,7 @@ } function applySiteSettings(settings) { + if (!settings) return; if (settings.page_name) { document.title = settings.page_name; } diff --git a/server/db-schema-check.js b/server/db-schema-check.js index 3249d85..e37d5ff 100644 --- a/server/db-schema-check.js +++ b/server/db-schema-check.js @@ -2,9 +2,9 @@ * Database schema check * Ensures required tables and columns exist at startup. */ -require('dotenv').config(); -const db = require('./db'); const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '..', '.env') }); +const db = require('./db'); const fs = require('fs'); const SCHEMA = { diff --git a/server/index.js b/server/index.js index de6cc96..25341c5 100644 --- a/server/index.js +++ b/server/index.js @@ -1,7 +1,7 @@ -require('dotenv').config(); +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '..', '.env') }); const express = require('express'); const cors = require('cors'); -const path = require('path'); const db = require('./db'); const prometheusService = require('./prometheus-service'); const cache = require('./cache'); @@ -987,7 +987,7 @@ app.post('/api/settings', requireAuth, async (req, res) => { ] ); - res.json({ success: true }); + res.json({ success: true, settings: getPublicSiteSettings(settings) }); } catch (err) { console.error('Error updating settings:', err); res.status(500).json({ error: 'Failed to update settings' }); @@ -1463,8 +1463,8 @@ async function start() { console.error('❌ Critical database initialization error:', dbErr.message); // If we have an .env but can't connect, this is a fatal config error if (fs.existsSync(path.join(__dirname, '..', '.env'))) { - console.error(' Please check your MYSQL settings in .env'); - process.exit(1); + console.error(' Please check your MYSQL settings in .env or run setup wizard.'); + // Don't exit, allow the user to reach the init/setup page to fix configurations } } diff --git a/server/init-db.js b/server/init-db.js index 16ff346..76bbdab 100644 --- a/server/init-db.js +++ b/server/init-db.js @@ -1,3 +1,5 @@ +const path = require('path'); +require('dotenv').config({ path: path.join(__dirname, '..', '.env') }); const mysql = require('mysql2/promise'); const checkAndFixDatabase = require('./db-schema-check'); const db = require('./db');