Node.JS [ru] | Серверный JavaScript
11.5K subscribers
92 photos
6 videos
25 files
3.17K 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 определить, включен ли Caps Lock

Вводя обычный текст, пользователи легко обнаруживают, что Caps Lock включен. Но когда вводится пароль, проблема не столь очевидна. В результате пароль не принимается, и это раздражает пользователя. В идеале разработчики могли бы предупреждать пользователя о том, что у него включен Caps Lock.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по NodeJS

Advanced калькулятор: Получите 3 аргумента: 1 число, мат. операцию и 2 число. Выполните операцию и выведите результат в консоль.

Реализуйте сложение, вычитание, умножение и деление. Учтите, что операторы должны быть в кавычках для правильной передачи в скрипт.

nodejs script.js 2 "*" 3
Result: 6

nodejs script.js 2 "-" 3
Result: -1

nodejs script.js 2 "+" 3
Result: 5

nodejs script.js 2 "/" 3
Result: 0.6666666


Решение задачи ⬇️

// Получение аргументов командной строки
const args = process.argv.slice(2);

// Проверка количества аргументов
if (args.length !== 3) {
console.log("Usage: node script.js <number1> <operation> <number2>");
process.exit(1);
}

// Парсинг аргументов
const num1 = parseFloat(args[0]);
const operation = args[1];
const num2 = parseFloat(args[2]);

// Проверка на корректность чисел
if (isNaN(num1) || isNaN(num2)) {
console.log("Both arguments must be valid numbers.");
process.exit(1);
}

// Выполнение математической операции
let result;
switch (operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
console.log("Invalid operation. Use one of +, -, *, /");
process.exit(1);
}

// Вывод результата
console.log(`Result: ${result}`);
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Асинхронные итераторы в JavaScript

В дополнение к таким API, как Promise.finally, ECMAScript 2018 принес нам еще один способ работы с итераторами. Это асинхронные итераторы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает Supabase  —  альтернатива облачной платформе Firebase

Supabase - инструмент с открытым исходным кодом, который не стоит игнорировать. Он не только доступнее и надежнее, чем Firebase, но и обладает впечатляющим спектром возможностей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Самый «скользкий» механизм в Redux – useSelector

Redux вроде как изучили вдоль и поперек, но от этого он не стал идеальным. В данной статье мы детально разберем один из самых неприятных механизмов в Redux, которым многие стреляют себе в ногу – useSelector.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Безопасность Node.js в продакшене: экспертные рекомендации для разработчиков

Подробно разберем передовые методы обеспечения безопасности, дадим идеи для их реализации. Попробуем выстроить многоуровневую линию обороны.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Разделение состояния между окнами без сервера

Давайте создадим проект, в котором разные окна одного приложения будут реагировать друг на друга. Для этого у них будет разделяемое состояние.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по NodeJS

Вывести в консоль букву Y нарисованную звёздочками. Размер 5Х5 символов:

*   *
* *
*
*
*


Решение задачи ⬇️

function drawY(size) {
let output = '';
for (let i = 0; i < size; i++) {
for (let j = 0; j < size; j++) {
if ((i < size / 2 && (i === j || j === size - 1 - i)) || (i >= size / 2 && j === Math.floor(size / 2))) {
output += '*';
} else {
output += ' ';
}
}
output += '\n';
}
console.log(output);
}

drawY(5);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Как занять первое место в поисковой выдаче: добавляем SSR в Vue 3 + Vite приложение

При разработке на реактивных фреймворках многие забывают о том, что итоговое приложение – это что-то ближе к SPA, а не классический сайт как «на Wordpress». И когда дело доходит до SEO-продвижения, многие хватаются за голову, потому что поисковые системы плохо работают с такими ресурсами. Поэтому давайте сегодня познакомимся с технологией SSR, которая решит данную проблему.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔞 Пишем Telegram-бота для фильтрации нецензурной лексики в чате

Представляю бесплатного Telegram-бота для фильтрации мата в чате Telegram. Telegram-бот разработан на JavaScript с использованием фреймворка gremmY. В основе работы бота лежит база данных нецензурных выражений, состоящая из 5668 слов. Полный код проекта можно посмотреть в моем Github-репозитории.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 PostgreSQL или MySQL: что лучше подойдет для вашего проекта

PostgreSQL и MySQL – самые популярные реляционные СУБД. Обе обеспечивают надежное хранение и эффективное извлечение данных, и потому сделать выбор между ними не так-то просто. В этой статье мы углубимся в сравнение PostgreSQL и MySQL: рассмотрим их особенности, основные отличия, функциональность и производительность, a также обсудим типичные сценарии использования, чтобы определить, какая из них лучше подходит для конкретного проекта.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как установить Node.js в Ubuntu

В этой статье я покажу вам, как установить последнюю LTS-версию Node в операционной системе Ubuntu.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Что такое цикл событий?

Цикл событий - это цикл, лежащий в основе Node.js, управляющий порядком исполнения пользовательского кода (коллбеков).

Цикл событий содержит структуры, похожие на очереди, но он не обрабатывает весь стек последовательно. Цикл событий представляет собой процесс, состоящий из этапов (групп задач), которые выполняются по очереди.

🔽Вот эти этапы:

Timers - выполняется код, инициированный через setTimeout() или setInterval().
Callbacks - выполняются пользовательские коллбеки (большая часть пользовательского кода).
Polling - опрос новых событий, которые будут обработаны в следующем тике цикла.
Set Immediate - выполняются функции, зарегистрированные через setImmediate().
Close - выполняются все колбеки для событий on(‘close’).
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как реализовать простой контроль версий с помощью JavaScript, чтобы лучше разобраться в Git

Git - эффективная система, предназначенная для контроля версий и отслеживания истории исходного кода. Изучим внутреннее устройство Git, реализуя его упрощенную версию.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Разбираемся в алгоритме быстрой сортировки с помощью JavaScript

Раскладываем по полочкам, как работает алгоритм быстрой сортировки с помощью JavaScript с пошаговой иллюстрацией каждого шага.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Продвинутые директивы Dockerfile

В этой статье мы рассмотрим директивы Dockerfile, которые можно использовать для создания более сложных образов Docker: ENV, ARG, WORKDIR, COPY, ADD, USER, VOLUME, EXPOSE, HEALTHCHECK и ONBUILD.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Про многопоточность и Node.js

Node.js работает в одном потоке, но позволяет выполнять параллельные операции ввода/вывода без необходимости создания потоков и их синхронизации. Платформа и ОС обрабатывают параллельные задачи, а JavaScript-код выполняется однопоточно.

➡️ Другими словами, всё, кроме нашего JS-кода работает параллельно. В синхронных блоках JavaScript-кода команды всегда выполняются по одной, в том порядке, в котором они представлены в исходном коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍿 Создание приложения для отслеживания фильмов с помощью HTML, CSS и JavaScript

Познакомьтесь с MovieVerse — удобной веб-платформой, где пользователи могут легко просматривать обширную коллекцию постеров к фильмам и добавлять избранные фильмы в свой список для просмотра.

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