Node.JS [ru] | Серверный JavaScript
11.4K subscribers
88 photos
5 videos
25 files
3.18K links
Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO

Канал на бирже - https://telega.in/c/we_use_js

По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Download Telegram
👩‍💻 Изучение Символов JavaScript

Глубокое погружение в JavaScript Символы — что это такое, чем они важны и как их эффективно использо3вать

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👩‍💻 Проверка сбалансированных скобок

Напишите функцию, которая принимает строку, содержащую различные типы скобок ((), {}, []), и проверяет, являются ли они сбалансированными. Строка считается сбалансированной, если каждая открывающая скобка имеет соответствующую закрывающую в правильном порядке.

Пример: Для строки "{[()]}" функция должна вернуть true, а для строки "{[(])}"false.

Решение задачи🔽

function isBalanced(str) {
const stack = [];
const pairs = { ')': '(', '}': '{', ']': '[' };

for (let char of str) {
if (['(', '{', '['].includes(char)) {
stack.push(char);
} else if ([')', '}', ']'].includes(char)) {
if (stack.pop() !== pairs[char]) return false;
}
}
return stack.length === 0;
}

// Пример использования
console.log(isBalanced("{[()]}")); // true
console.log(isBalanced("{[(])}")); // false
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
➡️ Бесплатное обучение фулстек-разработке веб-сервиса с нуля по видео-урокам с исходным кодом и поддержкой

Статья представляет курс по созданию IT-продуктов: от выбора архитектуры до радости от разработки. Обучение включает 141 урок, доступный бесплатно, с акцентом на качество, масштабируемость и удобство работы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ PHP Typed: Маленький Composer пакет, который нарушает PHP правила ради вас

Звучит слишком громко? Давайте уточним, чтобы избежать обманутых ожиданий: этот пакет использует немного магии вне Хогвартса, и будет действительно полезен любителям строгой типизации в PHP.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎31
👩‍💻 Запись данных в файл

Создайте Node.js скрипт, который принимает текст через стандартный ввод и сохраняет его в файл output.txt. Если файл уже существует, новые данные должны добавляться в конец файла.

Решение задачи🔽

const fs = require('fs');
const readline = require('readline');

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

rl.question('Введите текст для записи: ', (input) => {
fs.appendFile('output.txt', input + '\n', (err) => {
if (err) {
console.error('Ошибка записи в файл:', err);
} else {
console.log('Текст успешно сохранён в output.txt');
}
rl.close();
});
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3👍1
👩‍💻 WeakMap и WeakSet в JavaScript

Какие структуры данных помогут избежать утечек памяти в JavaScript? Статья раскрывает особенности WeakMap и WeakSet: слабые ссылки, автоматическое управление памятью и неожиданные сценарии их применения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 API для конвертации валют

Создайте 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(`Сервер: https://localhost:${PORT}`));
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2👍1
👩‍💻 Работа с JavaScript Scheduler API

Откройте для себя возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
⚡️ @asouei/safe-fetch — всего 3kb, но решает все боли с fetch:

Один из подписчиков написал либу которая сильно упрощает работу с запросами. Думаю вам будет интересно.

Было:
try {
const res = await fetch('/api/users');
if (!res.ok) throw new Error(res.status);
const data = await res.json();
} catch (e) {
// непонятно, что за ошибка
}


Стало:
const res = await safeFetch.get('/api/users');
if (res.ok) {
console.log(res.data);
} else {
console.error(res.error.name); // NetworkError | TimeoutError | HttpError
}


без исключений — всегда {ok: true/false}
типизированные ошибки
умные ретраи с backoff
общий таймаут
поддержка Retry-After

📦 npm i @asouei/safe-fetch

📖 [GitHub + Readme](https://github.com/asouei/safe-fetch#readme)

Пишите что думаете, думаю автору будет интересно ваше мнение.
🔥2😁2
👩‍💻 Как работать с потоками в JavaScript: оптимизация асинхронных запросов

В статье объясняется асинхронное программирование в JavaScript. Разбираются основы работы с промисами, async/await и методы управления параллельными операциями для повышения читаемости и эффективности кода.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2