Создайте Node.js сервер, который предоставляет API для конвертации валют с фиксированными курсами. Запрос включает исходную валюту, целевую валюту и сумму для конвертации, а сервер возвращает результат.
Требования:
•
GET /convert
:
•
Параметры: from
, to
, amount
.
•
Возвращает результат конвертации.•
Фиксированные курсы валют (например, USD → EUR = 0.85).•
Обработка ошибок: некорректные параметры или неподдерживаемая валюта.Решение задачи
const express = require('express');
const app = express();
const PORT = 3000;
// Фиксированные курсы
const rates = { USD: { EUR: 0.85 }, EUR: { USD: 1.18 } };
app.get('/convert', (req, res) => {
const { from, to, amount } = req.query;
if (!from || !to || !amount || isNaN(amount)) {
return res.status(400).json({ error: 'Некорректные параметры' });
}
const rate = rates[from]?.[to];
if (!rate) return res.status(400).json({ error: 'Валюта не поддерживается' });
const converted = (amount * rate).toFixed(2);
res.json({ from, to, amount: parseFloat(amount), converted });
});
app.listen(PORT, () => console.log(`Сервер: http://localhost:${PORT}`));
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Откройте для себя возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1👍1
В статье объясняется асинхронное программирование в JavaScript. Разбираются основы работы с промисами, async/await и методы управления параллельными операциями для повышения читаемости и эффективности кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Senior Node.js Developer
Senior Node.js Backend Developer
Senior Node.js Backend Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
• Центральный Университет: взгляд магистра изнутри (1 семестр)
• Стартап vs корпорации vs предпринимательство: кому, куда и зачем?
• Почему соискателям не стоит постить нюдсы, что такое culture fit и чем IT-индустрия напоминает подростка
• Лидерами рождаются или становятся? Откуда берутся управленцы и лидеры в IT
• Работать или переработать: как победить в себе заядлого удаленщика
Please open Telegram to view this post
VIEW IN TELEGRAM
Как защитить веб-страницы паролем без серверной поддержки? Инструменты StatiCrypt и Portable Secret помогут зашифровать HTML с использованием AES-256. Статические страницы остаются безопасными даже на публичном хостинге.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Promise.finally
в JavaScript и зачем он используется?Promise.finally
— это метод, который выполняется после завершения промиса (успешного или с ошибкой), независимо от его результата. Это полезно для очистки ресурсов или выполнения финальных действий.const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve('Успех!'), 1000);
});
promise
.then(result => console.log(result)) // 'Успех!'
.catch(error => console.error(error))
.finally(() => console.log('Завершено!'));
🗣️ В этом примере finally вызывается после завершения промиса, независимо от того, был он успешно выполнен или отклонён. Это удобно для задач, таких как закрытие соединений или очистка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Senior Node.js Developer
Team Lead / Руководитель команды разработки
Архитектор (Node.js, React, TypeScript)
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается, как создать Telegram-тапалку с нуля, используя современный стек технологий. Вы освоите Serverless-подход, разработку на Node.js, Vue, Supabase и деплой проектов в облаке.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1😁1🤡1
Давно работаешь с одним и тем же инструментом или подходом? Это удобно, но затормаживает рост.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🤯1
NodeJs Developer
Full Stack Developer
PHP Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Почему разработка собственного инструмента для нагрузки на API иногда оказывается лучшим выбором? В статье обсуждается реальный кейс: задачи тестирования производительности, ограничения Postman и сложность JMeter. Узнайте, как и зачем был создан простой и эффективный API-лоадер на Node.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Напишите Node.js скрипт, который читает текстовый файл и выводит количество строк в нём. Если файл не существует, скрипт должен выводить сообщение об ошибке.
Решение задачи
const fs = require('fs');
const filePath = process.argv[2];
if (!filePath) {
console.error('Укажите путь к файлу как аргумент.');
process.exit(1);
}
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err.message);
return;
}
const lines = data.split('\n').length;
console.log(`Количество строк в файле: ${lines}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
• Сравнение Gitlab cache и Gitlab artifacts
• JavaScript: Удобство или Угроза? Размышления о Приватности и Вебе
• Как мы учили немонохромные SVG-логотипы краситься самостоятельно
• Разбираемся с цветами: пространства, иллюзии и квантование
• Как приготовить обфускацию в JavaScript и не сжечь лабораторию: AST, babel, плагины
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Статья изучает шаблоны наследования в JavaScript, основанные на прототипах. Рассматриваются их уникальные особенности и применение, чтобы выбрать наиболее подходящий подход для задач.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Напишите HTTP-сервер на Node.js, который записывает информацию о каждом входящем запросе (метод, URL, время) в текстовый файл
requests.log
. Сервер должен возвращать "Запрос обработан"
на любой запрос.Пример:
node server.js
curl http://localhost:3000/test
curl -X POST http://localhost:3000/api
[2024-11-11T12:00:00Z] GET /test
[2024-11-11T12:00:05Z] POST /api
Решение задачи
const http = require('http');
const fs = require('fs');
const logFile = 'requests.log';
// Создание HTTP-сервера
const server = http.createServer((req, res) => {
const logEntry = `[${new Date().toISOString()}] ${req.method} ${req.url}\n`;
// Записываем лог в файл
fs.appendFile(logFile, logEntry, (err) => {
if (err) {
console.error('Ошибка записи лога:', err.message);
}
});
// Отправляем ответ
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Запрос обработан');
});
// Запуск сервера на порту 3000
server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Node.js Разработчик
Junior FullStack Developer (React + Node.js)
Junior+/Middle Full-Stack Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1
Как добавить новое поле в базу данных и связать его с фронтендом? В статье рассказывается об обновлении таблицы Webhook, создании календаря на Angular и настройке работы с временными зонами и локализацией.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👻1
fs.promises
в Node.js и как его использовать?fs.promises
— это API для работы с файловой системой с использованием промисов, что позволяет писать асинхронный код без коллбеков.const fs = require('fs').promises;
async function readFile() {
try {
const data = await fs.readFile('example.txt', 'utf8');
console.log('Содержимое файла:', data);
} catch (err) {
console.error('Ошибка чтения файла:', err.message);
}
}
readFile();
🗣️ В этом примере fs.promises.readFile используется для чтения файла асинхронно, делая код чище и проще для обработки ошибок через try-catch.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2❤🔥1
FullStack разработчик (Vue, Node)
•
Node.js, Vue.js, MySQL, Docker, Webpack, Git•
Уровень дохода не указан | 3–6 летNode.js Backend Developer
•
Node.js, TypeScript, PostgreSQL, Koa, Liquibase, Sequelize•
Уровень дохода не указан | 3–6 летNode.js Backend разработчик (удаленно)
•
Node.js, TypeScript, PostgreSQL, REST API, Redis, Microservices•
от 180 000 до 660 000 ₽ на руки | 1–3 годаPlease open Telegram to view this post
VIEW IN TELEGRAM