feat: обновление конфигурации проекта с использованием TypeScript и улучшение обработки ошибок

- Переписаны основные файлы сервера с JavaScript на TypeScript.
- Добавлен новый обработчик ошибок с логированием в базу данных.
- Обновлен Dockerfile для поддержки сборки TypeScript.
- Изменены настройки окружения для MongoDB в docker-compose.
- Удалены устаревшие файлы и добавлены новые модели и утилиты для работы с MongoDB.
- Обновлены зависимости в package.json и package-lock.json.
This commit is contained in:
Primakov Alexandr Alexandrovich
2025-05-08 14:18:03 +03:00
parent 1bf68cea08
commit 8a1868482c
25 changed files with 1669 additions and 217 deletions

16
server/models/ErrorLog.ts Normal file
View File

@@ -0,0 +1,16 @@
import mongoose from 'mongoose'
const ErrorLogSchema = new mongoose.Schema({
message: { type: String, required: true },
stack: { type: String },
path: { type: String },
method: { type: String },
query: { type: Object },
body: { type: Object },
createdAt: { type: Date, default: Date.now },
})
// Индекс для быстрого поиска по дате создания
ErrorLogSchema.index({ createdAt: 1 })
export const ErrorLog = mongoose.model('ErrorLog', ErrorLogSchema)

View File

@@ -1,7 +1,7 @@
const mongoose = require('mongoose');
// Типы вопросов
const QUESTION_TYPES = {
export const QUESTION_TYPES = {
SINGLE_CHOICE: 'single_choice', // Один вариант
MULTIPLE_CHOICE: 'multiple_choice', // Несколько вариантов
TEXT: 'text', // Текстовый ответ
@@ -10,7 +10,7 @@ const QUESTION_TYPES = {
};
// Типы отображения
const DISPLAY_TYPES = {
export const DISPLAY_TYPES = {
DEFAULT: 'default',
TAG_CLOUD: 'tag_cloud',
VOTING: 'voting',
@@ -51,10 +51,5 @@ const questionnaireSchema = new mongoose.Schema({
publicLink: { type: String, required: true } // ссылка для голосования
});
const Questionnaire = mongoose.model('Questionnaire', questionnaireSchema);
export const Questionnaire = mongoose.model('Questionnaire', questionnaireSchema);
module.exports = {
Questionnaire,
QUESTION_TYPES,
DISPLAY_TYPES
};