/
panasenkoev
/
web-nodejs-labs
Обзор
Документация
Войти
/
panasenkoev
/
web-nodejs-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/server.js
71 строка
3 KB
unknown
Finish lab11
22 дек 2025, 09:05
22 дек 2025, 09:05
aaa409b
Код
Авторство
О чём код?
// backend/server.js import Fastify from 'fastify'; import FastifyStatic from '@fastify/static'; import fastifyPostgres from '@fastify/postgres'; import fastifyJwt from '@fastify/jwt'; import dotenv from 'dotenv'; import path from 'path'; import { fileURLToPath } from 'url'; // Импортируем маршруты для лабораторных работ import lab7Routes from './src/routes/lab7/index.js'; import lab8Routes from './src/routes/lab8/index.js'; import lab9Routes from './src/routes/lab9/index.js'; import lab10Routes from './src/routes/lab10/index.js'; import scheduleRoutes from './src/routes/lab10/schedule.routes.js'; import lab11Routes from './src/routes/lab11/index.js'; // Изменено: импортируем index.js //import lab11ScheduleAdminRoutes from './src/routes/lab11/schedule.admin.routes.js'; // Определяем __dirname для ES-модулей const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Создаём экземпляр Fastify с логгированием const fastify = Fastify({ logger: true }); // Загружаем конфиг из .env.local dotenv.config({ path: path.join(__dirname, '.env.local') }); // Подключаем базу данных fastify.register(fastifyPostgres, { connectionString: process.env.DATABASE_URL }); // Регистрируем плагин для отдачи статических файлов fastify.register(FastifyStatic, { root: path.join(__dirname, '..', 'public'), index: 'index.html', wildcard: false }); // Подключаем JWT fastify.register(fastifyJwt, { secret: process.env.SECRET_KEY || 'mysecretkey' // Добавлено значение по умолчанию }); // Декоратор аутентификации fastify.decorate("authenticate", async function (request, reply) { try { await request.jwtVerify(); } catch (err) { reply.code(401).send({ error: "Unauthorized" }); } }); // Регистрируем маршруты лабораторных работ fastify.register(lab7Routes, { prefix: '/api/lab7' }); fastify.register(lab8Routes, { prefix: '/api/lab8' }); fastify.register(lab9Routes, { prefix: '/api/lab9' }); fastify.register(lab10Routes, { prefix: '/api/lab10' }); fastify.register(scheduleRoutes, { prefix: '/api/lab10' }); fastify.register(lab11Routes, { prefix: '/api/lab11' }); // Запуск сервера const start = async () => { try { await fastify.listen({ port: 3000, host: '0.0.0.0' }); } catch (err) { fastify.log.error(err); process.exit(1); } }; start();