Add files via upload

This commit is contained in:
kalugin66
2025-11-07 14:53:52 +05:00
committed by GitHub
parent 56a0f1d013
commit ac0a07a360
2 changed files with 21 additions and 11 deletions

View File

@@ -3,18 +3,23 @@ const path = require('path');
const fs = require('fs'); const fs = require('fs');
require('dotenv').config(); require('dotenv').config();
const dbPath = path.join(__dirname, 'school_crm.db'); // Создаем папку data если нет
const dataDir = path.join(__dirname, 'data');
// Создаем папки если нет
const createDirIfNotExists = (dirPath) => { const createDirIfNotExists = (dirPath) => {
if (!fs.existsSync(dirPath)) { if (!fs.existsSync(dirPath)) {
fs.mkdirSync(dirPath, { recursive: true }); 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 tasksDir = path.join(uploadsDir, 'tasks');
const logsDir = path.join(__dirname, 'logs'); const logsDir = path.join(dataDir, 'logs');
createDirIfNotExists(uploadsDir); createDirIfNotExists(uploadsDir);
createDirIfNotExists(tasksDir); createDirIfNotExists(tasksDir);
@@ -25,6 +30,7 @@ const db = new sqlite3.Database(dbPath, (err) => {
console.error('Ошибка подключения к БД:', err.message); console.error('Ошибка подключения к БД:', err.message);
} else { } else {
console.log('Подключение к SQLite установлено'); console.log('Подключение к SQLite установлено');
console.log('База данных расположена:', dbPath);
initializeDatabase(); initializeDatabase();
} }
}); });
@@ -105,7 +111,7 @@ function initializeDatabase() {
FOREIGN KEY (user_id) REFERENCES users (id) FOREIGN KEY (user_id) REFERENCES users (id)
)`); )`);
console.log('База данных инициализирована'); console.log('База данных инициализирована в папке data');
} }
function createTaskFolder(taskId) { function createTaskFolder(taskId) {

View File

@@ -6,7 +6,6 @@ const session = require('express-session');
require('dotenv').config(); require('dotenv').config();
const { db, logActivity, createUserTaskFolder, saveTaskMetadata, updateTaskMetadata, checkTaskAccess } = require('./database'); const { db, logActivity, createUserTaskFolder, saveTaskMetadata, updateTaskMetadata, checkTaskAccess } = require('./database');
const authService = require('./auth');
const app = express(); const app = express();
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;
@@ -15,7 +14,9 @@ const PORT = process.env.PORT || 3000;
app.use(express.json()); app.use(express.json());
app.use(express.urlencoded({ extended: true })); app.use(express.urlencoded({ extended: true }));
app.use(express.static('public')); 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({ app.use(session({
@@ -43,8 +44,10 @@ const storage = multer.diskStorage({
const userFolder = createUserTaskFolder(taskId, userLogin); const userFolder = createUserTaskFolder(taskId, userLogin);
cb(null, userFolder); cb(null, userFolder);
} else { } else {
const tempDir = path.join(__dirname, 'uploads/temp'); const tempDir = path.join(__dirname, 'data', 'uploads', 'temp');
createDirIfNotExists(tempDir); if (!fs.existsSync(tempDir)) {
fs.mkdirSync(tempDir, { recursive: true });
}
cb(null, tempDir); 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)) { if (fs.existsSync(tempDir)) {
fs.rmSync(tempDir, { recursive: true, force: true }); fs.rmSync(tempDir, { recursive: true, force: true });
} }
@@ -760,6 +763,7 @@ app.get('/api/activity-logs', requireAuth, (req, res) => {
app.listen(PORT, () => { app.listen(PORT, () => {
console.log(`CRM сервер запущен на порту ${PORT}`); console.log(`CRM сервер запущен на порту ${PORT}`);
console.log(`Откройте http://localhost:${PORT} в браузере`); console.log(`Откройте http://localhost:${PORT} в браузере`);
console.log('Данные хранятся в папке:', path.join(__dirname, 'data'));
console.log('Тестовые пользователи:'); console.log('Тестовые пользователи:');
console.log('- Логин: director, Пароль: director123 (Администратор)'); console.log('- Логин: director, Пароль: director123 (Администратор)');
console.log('- Логин: zavuch, Пароль: zavuch123'); console.log('- Логин: zavuch, Пароль: zavuch123');