Node.JS [ru] | Серверный JavaScript
11.5K subscribers
92 photos
6 videos
25 files
3.16K 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
👩‍💻 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(`Сервер: http://localhost:${PORT}`));
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Работа с JavaScript Scheduler API

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍1
👩‍💻 Как работать с потоками в JavaScript: оптимизация асинхронных запросов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔎 Подборка вакансий для сеньоров

Senior Node.js Developer
🟢Node.js, TypeScript, Nest.js, Fastify, PostgreSQL, MongoDB, AWS, REST API
🟢Уровень дохода не указан | 3–6 лет

Senior Node.js Backend Developer
🟢Node.js, Nest.js, TypeScript, PostgreSQL, GraphQL, Docker
🟢от 250 000 ₽ на руки | 3–6 лет

Senior Node.js Backend Developer
🟢Node.js, TypeScript, PostgreSQL, MongoDB, Redis, RabbitMQ, Docker, Kubernetes
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🛡 Парольная защита статичной HTML-страницы на JS

Как защитить веб-страницы паролем без серверной поддержки? Инструменты 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
👍71
🔎 Подборка вакансий для лидов

Senior Node.js Developer
🟢Node.js, TypeScript, GraphQL, PostgreSQL, Kafka, Docker, Kubernetes, AWS
🟢Уровень дохода не указан | Более 6 лет

Team Lead / Руководитель команды разработки
🟢Python, Node.js, MySQL, ClickHouse, Scrum, Kanban, Automation, Microservices
🟢Уровень дохода не указан | Более 6 лет

Архитектор (Node.js, React, TypeScript)
🟢Node.js, React, TypeScript, PostgreSQL, REST, WebSockets, Docker
🟢от 420 000 ₽ до вычета налогов | Более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Создаем Hamster Kombat почти с нуля. Практика по Vue 3 и Telegram Mini Apps

В статье рассказывается, как создать Telegram-тапалку с нуля, используя современный стек технологий. Вы освоите Serverless-подход, разработку на Node.js, Vue, Supabase и деплой проектов в облаке.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31😁1🤡1
🧠 Прокачивай мышление через эксперименты

Давно работаешь с одним и тем же инструментом или подходом? Это удобно, но затормаживает рост.

👉 Совет: хотя бы раз в месяц попробуй решить задачу нестандартным способом. Используй новую библиотеку, напиши код на языке, который почти не знаешь, или придумай другой алгоритм. Такие эксперименты ломают шаблоны и учат думать шире.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🤯1
🔎 Подборка зарубежных вакансий

NodeJs Developer
🟢Node.js, Nest.js, TypeScript, Jest, PostgreSQL, AWS
🟢от 3 000 до 5 000 $ | 3–6 лет

Full Stack Developer
🟢Node.js, TypeScript, VueJS, React, DevOps, PostgreSQL, Redis, Amazon Web Services
🟢Уровень дохода не указан | 3–6 лет

PHP Developer
🟢PHP, Symfony, Laravel, SQL, MS SQL, MySQL, Git, JavaScript, HTML, CSS, AJAX
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Как за 10 минут создать тестировщик нагрузки для API на Node.js

Почему разработка собственного инструмента для нагрузки на 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
👩‍💻 Обзор наследования в JavaScript

Статья изучает шаблоны наследования в JavaScript, основанные на прототипах. Рассматриваются их уникальные особенности и применение, чтобы выбрать наиболее подходящий подход для задач.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Запись лога HTTP-запросов в файл

Напишите 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 Разработчик
🟢Node.js, Nest.js, JavaScript, MySQL, PostgreSQL, Git, OOP, MVC, Linux
🟢от 130 000 до 150 000 ₽ на руки | 1–3 года

Junior FullStack Developer (React + Node.js)
🟢React, Redux, TypeScript, CSS/LESS, WebRTC, Node.js, MongoDB
🟢Уровень дохода не указан | 1–3 года

Junior+/Middle Full-Stack Developer
🟢JavaScript, TypeScript, React, Next.js, Node.js, Nest.js, MongoDB, PostgreSQL
🟢до 1 200 $ на руки | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1
⚙️ Конвертация даты по временной зоне пользователя в «NestJS», а также ввод и отображение даты в «Angular»

Как добавить новое поле в базу данных и связать его с фронтендом? В статье рассказывается об обновлении таблицы 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
👍62❤‍🔥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