Node.JS [ru] | Серверный JavaScript
11.5K subscribers
91 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
👩‍💻 Как работает модуль fs в Node.js для работы с файлами?

Модуль fs в Node.js предоставляет методы для взаимодействия с файловой системой, позволяя читать, записывать и удалять файлы, а также управлять директориями. Этот модуль асинхронный, что особенно полезно для обработки файлов без блокировки основного потока.

➡️ Пример:

const fs = require('fs');

// Чтение файла
fs.readFile('example.txt', 'utf-8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err);
return;
}
console.log('Содержимое файла:', data);
});


🗣 fs удобен для создания, редактирования, перемещения и удаления файлов и директорий, что делает его незаменимым для файловых операций в Node.js.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔎 Подборка вакансий для лидов

Tech Lead (FullStack)
🟢React, TypeScript, Git, Redux Toolkit, Styled-components, Node.js (Nest.js), PHP, Laravel, Docker, MySQL, Web3.js, ethers.js
🟢Уровень дохода не указан | Требуемый опыт: 1–3 года

Руководитель разработки/Team Lead PHP
🟢React, Laravel, MySQL, Node.js, GitLab, Docker
🟢Уровень дохода не указан | Требуемый опыт: 3–6 лет

Web Tech Lead (Full stack, TsNode, Vue/React)
🟢Node.js, React, Vue.js
🟢Уровень дохода не указан | Требуемый опыт: 1–3 года

Старший разработчик JavaScript (Node.js/back-end)
🟢JavaScript, Node.js, Express, Nest, Riak, MongoDB, PostgreSQL, MySQL, Redis, RabbitMQ
🟢Уровень дохода не указан | Требуемый опыт: 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Эффективная многопоточность в Node.js: как использовать Atomics

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Страх ошибки — худший тормоз для роста.

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

🎯 Что делать: начни с маленьких рисков. Возьми задачу, в которой пока не уверен, или предложи идею на митинге, даже если есть сомнения. Фейлы — это не клеймо, а возможность показать, как ты умеешь справляться и двигаться дальше. Чем раньше примешь это, тем быстрее начнёшь расти.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔎 Подборка валютных вакансий

Node.js Developer part time (15-20ч) вечер
🟢Node.js, TypeScript, VueJS, SQL, noSQL, Jest, GraphQL, WebSocket
🟢от 800 $ | Требуемый опыт: 1–3 года

Backend Developer (Node.js), Integration Team
🟢Node.js, TypeScript, Koa, NestJS, MongoDB, Kafka, Bull (Redis), ClickHouse, Elasticsearch
🟢от 3 800 до 6 300 $ | Требуемый опыт: 3–6 лет

Продакт Разработчик Growth React/Node.js Full stack (Удаленно)
🟢Node.js, React, PostgreSQL, JavaScript, TypeScript
🟢от 2 500 до 3 200 $ | Требуемый опыт: 3–6 лет

Продакт Разработчик Growth React/Node.js Full stack
🟢Node.js, React, PostgreSQL, JavaScript, TypeScript
🟢от 2 500 до 3 200 $ | Требуемый опыт: 3–6 лет

Middle Node.JS-developer
🟢Node.js, TypeScript, PostgreSQL, RabbitMQ, NestJS
🟢от 1 500 € | Требуемый опыт: 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как использовать npm без опаски

Статья предлагает использовать прокси и кэширование для реестра npm с помощью Verdaccio или Nexus, чтобы повысить безопасность и ускорить установку пакетов. Также обсуждаются риски скриптов жизненного цикла npm и способы их безопасного использования.

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

Напишите скрипт на Node.js, который считывает JSON-файл, фильтрует данные по указанному ключу и значению, и выводит результат в консоль.

➡️ Пример:

node filterJson.js data.json age 30

[
{ "name": "Bob", "age": 30 },
{ "name": "Charlie", "age": 30 }
]


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

const fs = require('fs');

const [,, filePath, key, value] = process.argv;

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

fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err.message);
process.exit(1);
}

try {
const jsonData = JSON.parse(data);
const filteredData = jsonData.filter(item => item[key] == value);
console.log(JSON.stringify(filteredData, null, 2));
} catch (parseErr) {
console.error('Ошибка парсинга JSON:', parseErr.message);
process.exit(1);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
👩‍💻 Расширения VSCode для комфортной работы с проектами

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

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

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

➡️ Пример:

node writeToFile.js output.txt

Привет, мир!
Это тестовый ввод.
exit


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

const fs = require('fs');
const path = process.argv[2];
const readline = require('readline');

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

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

const writeStream = fs.createWriteStream(path, { flags: 'a' });

console.log('Введите текст. Для завершения введите "exit".');

rl.on('line', (input) => {
if (input.toLowerCase() === 'exit') {
console.log(`Ввод завершён. Данные записаны в файл: ${path}`);
rl.close();
} else {
writeStream.write(input + '\n');
}
});

rl.on('close', () => {
writeStream.end();
process.exit(0);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔎 Подборка вакансий для джунов

Junior Node.js-разработчик в интегратор amoCRM
🟢Node.js, Typescript, Javascript, Go
🟢Уровень дохода не указан | Без опыта

Junior/Middle Frontend-разработчик (Angular)
🟢JavaScript, TypeScript, Node.js, Git, Angular, HTML5, CSS3 (SCSS), HTTP, REST, WebSocket/SSE, SignalR
🟢Уровень дохода не указан | 1–3 года

Разработчик Node.js
🟢Node.js, Express.js, JavaScript (ES6+), TypeScript, MongoDB, PostgreSQL, MySQL, Promises, async/await, Git, RESTful API, Webpack, Gulp, HTTP, WebSockets, Yandex Cloud, AWS, GCP, Azure, Docker, Kubernetes
🟢Уровень дохода не указан | 1–3 года

Frontend разработчик JavaScript/TypeScript
🟢TypeScript, JavaScript, WebRTC, WebSocket, RESTful API, HTML, CSS, Tailwind CSS, Git, Unit-тестирование
🟢до 100 000 ₽ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎1
👩‍💻 Испортили git rebase?

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Как работают модули CommonJS и ES Modules в Node.js?

CommonJS и ES Modules (ESM) — два способа работы с модулями в Node.js. CommonJS является стандартом, который использовался с момента создания Node.js, в то время как ES Modules соответствуют стандарту JavaScript ES6 и обеспечивают более современный подход.

➡️ Отличия:

CommonJS:

Использует require() для импорта модулей и module.exports для экспорта.
Выполняется синхронно.

// commonjs-module.js
module.exports = function greet(name) {
return `Hello, ${name}!`;
};

// main.js
const greet = require('./commonjs-module');
console.log(greet('Alice')); // Hello, Alice!


ES Modules (ESM):

Использует import и export ключевые слова.
Выполняется асинхронно.

// esm-module.mjs
export function greet(name) {
return `Hello, ${name}!`;
}

// main.mjs
import { greet } from './esm-module.mjs';
console.log(greet('Alice')); // Hello, Alice!


🗣️ В современных приложениях рекомендуется использовать ES Modules благодаря их соответствию стандарту ES6 и поддержке асинхронности. Однако, CommonJS по-прежнему актуален для старых проектов.


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

Middle NodeJS developer
🟢Node.js, Redis, ExpressJS, PostgreSQL, JavaScript, HTTP, Docker
🟢от 120 000 до 200 000 ₽ | 1–3 года

Node.js Backend Developer (Middle/Middle+)
🟢Node.js, JavaScript, TypeScript, NestJS, SQL, NoSQL, Apache Kafka, Docker
🟢от 250 000 до 270 000 ₽ | 1–3 года

Middle backend-разработчик (Node.js)
🟢Node.js, PostgreSQL, Sequelize, Redis, Kubernetes, RabbitMQ, TypeScript, Nest.js
🟢от 210 000 до 260 000 ₽ | 3–6 лет

Fullstack-разработчик
🟢Node.js, TypeScript, React.js, Express.js, PostgreSQL, SQL, Redis
🟢от 80 000 до 120 000 ₽ | Без опыта

Разработчик React.js + Node.js Full Stack Middle / Senior Developer at AI Startup (Remote)
🟢React.js, Node.js, TypeScript
🟢от 250 000 до 500 000 ₽ | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Создание ванильного JavaScript signal() с Proxy

Статья объясняет, как с помощью Proxy в ванильном JavaScript реализовать реактивные сигналы, упрощая управление состоянием. Рассматриваются основные принципы и примеры применения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 Задачка по 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
💘5👍3
🤔 Почему мы выбрали gRPC вместо tRPC?

Статья объясняет, как gRPC упрощает переход от монолита к микросервисам в приложениях на основе Domain Driven Design. Рассматриваются преимущества: прямые вызовы, типизация, децентрализация и автоматизация методов.

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

Frontend Game Developer NodeJS (Middle+/Senior)
🟢JavaScript, Node.js, REST API, React
🟢от 200 000 до 300 000 ₽ до вычета налогов | 3–6 лет

Node.js Developer
🟢Node.js, TypeScript, PostgreSQL, RabbitMQ, Kafka, ZeroMQ
🟢от 2 500 до 3 500 $ на руки | 3–6 лет

Senior Frontend Developer (Vue / Node.js)
🟢JavaScript, Vue.js, Node.js, HTML, CSS, Docker, Jenkins
🟢от 4 000 до 5 500 € на руки | 3–6 лет

Senior Backend Developer (Node.js)
🟢Node.js, PostgreSQL, Docker, Kafka, Kubernetes, TypeScript, REST API
🟢до 200 000 ₽ на руки | более 6 лет

Senior backend developer (Node.js)
🟢Node.js, MongoDB, NATS, GraphQL, Docker
🟢от 250 000 до 350 000 ₽ на руки | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1