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
👩‍💻 Задачка по NodeJS

Создайте приложение на Node.js, которое считывает большой текстовый файл построчно и анализирует количество слов в каждой строке. Приложение должно использовать потоковое чтение (streams), чтобы эффективно обрабатывать большие файлы, не загружая их целиком в память.

➡️ Пример:

node app.js analyze filename.txt — считывает файл filename.txt построчно, подсчитывает слова в каждой строке и выводит их общее количество для каждой строки в консоль.

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

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

function analyzeFile(filePath) {
const lineReader = readline.createInterface({
input: fs.createReadStream(filePath),
crlfDelay: Infinity
});

lineReader.on('line', (line) => {
const wordCount = line.trim().split(/\s+/).filter(Boolean).length;
console.log(`Строка: "${line}" - Количество слов: ${wordCount}`);
});

lineReader.on('close', () => {
console.log('Анализ файла завершён.');
});
}

const filePath = process.argv[2];
if (!filePath) {
console.error('Укажите путь к файлу для анализа.');
process.exit(1);
}

const fullPath = path.resolve(filePath);
analyzeFile(fullPath);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Как обнаружить изменение атрибутов веб-компонента

Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как я настраивал S3 в Strapi? Больно, но не сильно

Опыт работы со Strapi и настройка отправки файлов в S3. В статье поделюсь шагами интеграции и кастомными скриптами для работы с облачным хранилищем S3. Удобные решения для новичков и не только.

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

Разработчик Node.js
Node.js, Nest.js, TypeScript, TypeOrm, Redis, Memcached, PostgreSQL, Kafka
Уровень дохода не указан | от 3 лет опыта

Node.JS разработчик
Node.js, NestJS, Next.js, Oracle, MsSql, PostgreSQL, REST, SOAP, XML, JSON, RabbitMQ, Kafka, ActiveMQ, ELK, Docker, Kubernetes, SOLID, Git, JIRA, Confluence
Уровень дохода не указан | от 3 лет опыта

Fullstack Vue/Node.js разработчик
Vue.js, VUEX, Node.js, Bootstrap 3-4, JavaScript (DOM), npm, git, jira, Oracle, Unit-тестирование, Webpack, Gulp
Уровень дохода не указан | от 4 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
Эпопея шахматных движков: мой опыт в разработке шахматной программы

В этой статье я расскажу про личный опыт написания шахматной программы на языке TypeScript. С какими проблемами столкнулся и пути к их решению.

Читать...
👍2
👩‍💻 Как работает process.nextTick() в Node.js?

Метод process.nextTick() добавляет коллбэк в очередь "next tick" в Node.js, позволяя выполнить функцию после текущей операции, но перед следующей итерацией цикла событий. Это полезно, когда нужно завершить текущую операцию, а затем немедленно перейти к следующей задаче, не дожидаясь полного завершения цикла событий.

➡️ Пример:
console.log('Начало');

process.nextTick(() => {
console.log('Вызов в nextTick');
});

console.log('Конец');

// Вывод:
// Начало
// Конец
// Вызов в nextTick


🗣 В этом примере process.nextTick() срабатывает сразу после выполнения синхронного кода, но до обработки задач из очереди цикла событий. Это делает nextTick() полезным для выполнения задач с высоким приоритетом.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👩‍💻 Управление Node.js 19 и NPM 9 с помощью NVM

Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🤷‍♀1
🤔 Что случилось с легковесными десктопными приложениями? История Electron

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔄 Автоматизируй повторяющиеся задачи

Каждый раз вручную делаешь сборку, деплой или запускаешь тесты? Это тратит драгоценные минуты (а иногда часы).

👉 Совет: внедри CI/CD-пайплайн, используй скрипты для рутинных задач. Один раз автоматизируй, и тебе больше не придётся думать о рутине. Вместо этого сосредоточься на создании чего-то нового.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔎 Подборка зарубежных вакансий

Full-stack Developer / Technical Partner (TS, Node.JS)
🟢TypeScript, React, Vue, Next.js, Nuxt.js, Node.js, PostgreSQL, Redis, CI/CD, Highload, Blockchain
🟢Уровень дохода не указан | 3–6 лет опыта

Backend Engineer (Node.js)
🟢Node.js, GraphQL, RedwoodJS, Prisma ORM, Firebase, Git
🟢Уровень дохода не указан | 3–6 лет опыта

Full Stack Developer (Node.js, TypeScript, SQL)
🟢Node.js, Express.js, React, TypeScript, SQL, RESTful API, SurveySparrow, Apache Airflow, Qualtrics, AWS
🟢Уровень дохода не указан | 3–6 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
😐2👍1
👩‍💻 Недостатки JavaScript

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

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

Напишите скрипт, который создаёт HTTP-сервер. При запросе на сервер он должен возвращать текст "Hello, World!".

Сервер запускается на порту 3000.
При обращении к http://localhost:3000 в браузере или через curl возвращается строка "Hello, World!".

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

const http = require('http');

const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});

server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6
👩‍💻 Испортили git rebase?

Git rebase — мощный инструмент, помогающий перенести или объединить один, или несколько коммитов в новый базовый коммит, переписав историю проекта так, чтобы ваша ветка выглядела созданной из другого коммита. Он помогает поддерживать более чистую и линейную историю.

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

Напишите скрипт на Node.js, который скачивает файл по указанному URL и сохраняет его на диск с заданным именем.

Скачивание должно быть реализовано с использованием стандартного модуля https.
Если процесс скачивания прерывается, в консоли должна отображаться ошибка.

➡️ Пример:

node downloadFile.js https://example.com/file.txt saved_file.txt


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

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

const [,, url, fileName] = process.argv;

if (!url || !fileName) {
console.error('Использование: node downloadFile.js <url> <fileName>');
process.exit(1);
}

const file = fs.createWriteStream(fileName);

https.get(url, (response) => {
if (response.statusCode !== 200) {
console.error(`Ошибка: Невозможно скачать файл. Статус HTTP: ${response.statusCode}`);
response.resume(); // Освобождаем память
return;
}

response.pipe(file);

file.on('finish', () => {
file.close();
console.log(`Файл успешно сохранён как ${fileName}`);
});
}).on('error', (err) => {
fs.unlink(fileName, () => {}); // Удаляем файл в случае ошибки
console.error(`Ошибка скачивания: ${err.message}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
🔎 Подборка вакансий для джунов

Junior/middle Node.js-разработчик
🟢Node.js, TypeScript, JavaScript, MongoDB
🟢до 100 000 ₽ на руки | Без опыта

Junior backend разработчик Node.js, JavaScript
🟢Node.js, JavaScript, CSS3, HTML5, PostgreSQL, Docker, Git, Puppeteer
🟢от 60 000 ₽ на руки | 1–3 года опыта

Junior Backend Developer Node.js
🟢Node.js, Express, Nest.js, JavaScript, TypeScript, SQL, Docker, CI/CD, Git, RabbitMQ, HTML, CSS, React
🟢Уровень дохода не указан | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Различные (и современные) способы переключения контента

Давайте уделим немного времени рассмотрению Dialog API, Popover API и остальных. Рассмотрим, когда лучше использовать каждый из них в зависимости от требований. Модальные или немодальные? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы разберёмся во всём этом.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Что такое libuv в Node.js?

libuv — это библиотека, используемая Node.js для управления асинхронным вводом/выводом через событийный цикл и пул потоков. Она предоставляет абстракцию над операционными системами, что позволяет Node.js быть кроссплатформенным и эффективно управлять асинхронными операциями, такими как работа с файловой системой, сетевые операции и таймеры.

➡️ Пример: В Node.js работа с асинхронными функциями, такими как fs.readFile, происходит через libuv. Функция передаёт запрос на выполнение в пул потоков, и когда операция завершится, событие добавляется в очередь событий для обработки.

const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});


🗣️ libuv лежит в основе асинхронной природы Node.js, управляя низкоуровневыми операциями и обеспечивая эффективное выполнение ввода/вывода на уровне ядра.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👎1
📝 Подборка вакансий для мидлов

Middle fullstack developer (NodeJS)
Node.js, TypeScript, SQL, Docker, CI/CD
до 180 000 ₽ | Требуемый опыт не указан

Архитектор, Backend разработчик Nest js
JavaScript, NestJS, Node.js, TypeScript, Git, Docker, REST
от 200 000 ₽ | Требуемый опыт не указан

Node.js Backend Developer (проект СЭД)
TypeScript, Node.js, JavaScript, React
Уровень дохода не указан | Требуемый опыт не указан
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁1