Add files via upload
This commit is contained in:
18
database.js
18
database.js
@@ -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) {
|
||||||
|
|||||||
14
server.js
14
server.js
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user