/
Cooolprogrammers
/
web-nodejs-labs
Обзор
Документация
Войти
/
Cooolprogrammers
/
web-nodejs-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/src/services/lab8/task1Service.js
57 строк
2 KB
darkvoid6@mail.ru
ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
18 дек 2025, 07:59
18 дек 2025, 07:59
f2c4f06
Код
Авторство
О чём код?
// backend/src/services/lab8/task1Service.js import { promises as fs } from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; import { randomUUID } from 'crypto'; // Встроенный модуль Node.js const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const dataDir = path.join(__dirname, '../../../data/lab8/task1'); const dataFile = path.join(dataDir, 'task1.txt'); async function ensureDataFile() { try { await fs.mkdir(dataDir, { recursive: true }); await fs.access(dataFile).catch(async () => { await fs.writeFile(dataFile, '', 'utf-8'); }); } catch (err) { throw new Error('Cannot ensure data file: ' + err.message); } } export async function saveRecord(payload) { await ensureDataFile(); const record = { id: randomUUID(), // Используем встроенную функцию timestamp: new Date().toISOString(), ...payload, }; const line = JSON.stringify(record) + '\n'; await fs.appendFile(dataFile, line, 'utf-8'); return record; } export async function readAllRecords() { await ensureDataFile(); const content = await fs.readFile(dataFile, 'utf-8'); const lines = content.split(/\r?\n/).filter(Boolean); return lines.map(line => JSON.parse(line)); } export function makeInitials({ firstName, lastName, middleName }) { const initials = `${lastName} ${firstName?.[0] ?? ''}.${middleName?.[0] ?? ''}.`; return { initials }; } export function makeProjectStatus({ firstName, lastName, middleName, participate, projectName }) { const { initials } = makeInitials({ firstName, lastName, middleName }); let status; if (participate) { status = `Участвует в проекте: ${projectName || 'не указано'}`; } else { status = 'Не участвует в проекте'; } return { initials, status }; }