From ac0a07a3603948c020d59f1e73a3afaf1624e7d9 Mon Sep 17 00:00:00 2001 From: kalugin66 <150135283+kalugin1988@users.noreply.github.com> Date: Fri, 7 Nov 2025 14:53:52 +0500 Subject: [PATCH] Add files via upload --- database.js | 18 ++++++++++++------ server.js | 14 +++++++++----- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/database.js b/database.js index 6e5283d..84ad9ad 100644 --- a/database.js +++ b/database.js @@ -3,18 +3,23 @@ const path = require('path'); const fs = require('fs'); require('dotenv').config(); -const dbPath = path.join(__dirname, 'school_crm.db'); - -// Создаем папки если нет +// Создаем папку data если нет +const dataDir = path.join(__dirname, 'data'); const createDirIfNotExists = (dirPath) => { if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath, { recursive: true }); } }; -const uploadsDir = path.join(__dirname, 'uploads'); +createDirIfNotExists(dataDir); + +// Путь к базе данных в папке data +const dbPath = path.join(dataDir, 'school_crm.db'); + +// Папки для загрузок и логов в data +const uploadsDir = path.join(dataDir, 'uploads'); const tasksDir = path.join(uploadsDir, 'tasks'); -const logsDir = path.join(__dirname, 'logs'); +const logsDir = path.join(dataDir, 'logs'); createDirIfNotExists(uploadsDir); createDirIfNotExists(tasksDir); @@ -25,6 +30,7 @@ const db = new sqlite3.Database(dbPath, (err) => { console.error('Ошибка подключения к БД:', err.message); } else { console.log('Подключение к SQLite установлено'); + console.log('База данных расположена:', dbPath); initializeDatabase(); } }); @@ -105,7 +111,7 @@ function initializeDatabase() { FOREIGN KEY (user_id) REFERENCES users (id) )`); - console.log('База данных инициализирована'); + console.log('База данных инициализирована в папке data'); } function createTaskFolder(taskId) { diff --git a/server.js b/server.js index 6ea8db8..b4c0f20 100644 --- a/server.js +++ b/server.js @@ -6,7 +6,6 @@ const session = require('express-session'); require('dotenv').config(); const { db, logActivity, createUserTaskFolder, saveTaskMetadata, updateTaskMetadata, checkTaskAccess } = require('./database'); -const authService = require('./auth'); const app = express(); const PORT = process.env.PORT || 3000; @@ -15,7 +14,9 @@ const PORT = process.env.PORT || 3000; app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(express.static('public')); -app.use('/uploads', express.static('uploads')); + +// Статические файлы из папки data/uploads +app.use('/uploads', express.static(path.join(__dirname, 'data', 'uploads'))); // Сессии app.use(session({ @@ -43,8 +44,10 @@ const storage = multer.diskStorage({ const userFolder = createUserTaskFolder(taskId, userLogin); cb(null, userFolder); } else { - const tempDir = path.join(__dirname, 'uploads/temp'); - createDirIfNotExists(tempDir); + const tempDir = path.join(__dirname, 'data', 'uploads', 'temp'); + if (!fs.existsSync(tempDir)) { + fs.mkdirSync(tempDir, { recursive: true }); + } cb(null, tempDir); } }, @@ -267,7 +270,7 @@ app.post('/api/tasks', requireAuth, upload.array('files', 15), (req, res) => { }); // Очищаем временную папку - const tempDir = path.join(__dirname, 'uploads/temp'); + const tempDir = path.join(__dirname, 'data', 'uploads', 'temp'); if (fs.existsSync(tempDir)) { fs.rmSync(tempDir, { recursive: true, force: true }); } @@ -760,6 +763,7 @@ app.get('/api/activity-logs', requireAuth, (req, res) => { app.listen(PORT, () => { console.log(`CRM сервер запущен на порту ${PORT}`); console.log(`Откройте http://localhost:${PORT} в браузере`); + console.log('Данные хранятся в папке:', path.join(__dirname, 'data')); console.log('Тестовые пользователи:'); console.log('- Логин: director, Пароль: director123 (Администратор)'); console.log('- Логин: zavuch, Пароль: zavuch123');