/
a-zu
/
mock-server
Обзор
Документация
Войти
/
a-zu
/
mock-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
use/utils.js
56 строк
1 KB
unknown
init
06 фев 2026, 17:39
06 фев 2026, 17:39
383e022
Код
Авторство
О чём код?
'use strict'; import { readFile } from 'node:fs/promises'; import { MAX_DEFAULT_DELAY, ENABLE_ERRORS } from '../config.js'; /** * Имитация задержки ответа сервера. * @param {function} callback [callback = ()=>{}] * @param {number} delay [delay = 2000] * @returns {function} */ const delay_run = (callback = ()=>{}, delay = MAX_DEFAULT_DELAY) => setTimeout(callback, Math.floor(Math.random() * delay)); /** * Имитация ошибки сервера. * @returns {boolean} */ const is_fail = () => ENABLE_ERRORS && Boolean(Math.round(Math.random())); /** * Чтение json-файла. * @param {string} path * @returns {object} */ const read_json_file = async(path) => { try { const data = await readFile(path, 'utf8'); return await JSON.parse(data); } catch(err) { console.error('Невозможно прочитать файл.', path); } return {}; }; /** * Функция ответа с эмуляцией ошибки и задержки, с данными из json-файла. * @param {object} res * @param {object} req * @param {string} path */ const response_from_file = async (res, req, path) => { try { if(is_fail()) { throw new Error(); } const data = await read_json_file(path); delay_run(() => res.json(data)); } catch(err) { res.status(500).json({message: "Internal server error."}); } } export {delay_run, is_fail, read_json_file, response_from_file};