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
📝 Подборка вакансий для сеньоров

Node JS бэкенд-разработчик (частичная занятость)
Node.js, Express.js, REST API, PostgreSQL, MongoDB, Redis, Docker, Yandex.Cloud
от 250 000 ₽ | от 5 лет

Backend разработчик NodeJS
TypeScript, Node.js, MoleculerJS, PostgreSQL
Уровень дохода не указан | от 4 лет

Fullstack TypeScript разработчик [Senior]
TypeScript, Node.js, React, Kubernetes, Docker, PostgreSQL, Redis, Grafana, Prometheus
Уровень дохода не указан | от 5 лет

Fullstack (CMS Directus, Vue.js)
Node.js, Vue.js, Nuxt.js, PostgreSQL, S3, Docker, Makefile
Уровень дохода не указан | от 2 лет

Backend Developer (Node.js)
Node.js, MongoDB, TypeScript, NestJS, Kafka, Redis, Clickhouse, Elasticsearch
от 3 800 до 6 300 $ | от 5 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣2
👩‍💻 Улучшение производительности с делегированием событий

Статья объясняет технику делегирования событий в веб-разработке, показывая, как использование одного слушателя на родительском элементе упрощает управление событиями и повышает производительность.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
⚙️ Что такое process.env в Node.js и как использовать переменные окружения?

process.env — это объект в Node.js, который содержит переменные окружения. Они используются для хранения конфиденциальной информации (например, ключей API, паролей) и настройки приложений в разных средах (разработка, тестирование, продакшен).

➡️ Пример:

// Установите переменные окружения (например, в .env файле или через терминал)
// В Linux/Mac: export API_KEY=12345
// В Windows (cmd): set API_KEY=12345

// Доступ к переменным окружения
console.log(`Ваш API ключ: ${process.env.API_KEY}`);

// Используем переменные окружения для конфигурации
if (process.env.NODE_ENV === 'production') {
console.log('Запущено в режиме продакшена');
} else {
console.log('Запущено в режиме разработки');
}


🗣️ Переменные окружения через process.env позволяют настраивать поведение приложения без изменения кода. Это важно для обеспечения безопасности и управления настройками.


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

Lead NodeJS
Node.js, микросервисная архитектура, Camunda, Kubernetes, MongoDB, Apache Kafka, REST, React
Уровень дохода не указан | от 3 лет

Lead Backend Developer (Node.js) at US-based company
Node.js, JavaScript, TypeScript, RDBMS, Apache Kafka, CI/CD, Kubernetes, AWS
от 6 000 до 7 500 $ | более 6 лет

Senior Backend Developer (Node.js)
Node.js, TypeScript, NestJS, PostgreSQL, Redis, RabbitMQ, Docker, Kubernetes, AWS
от 5 000 до 6 000 $ | от 5 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Как пересылать сообщения из Telegram в SMS с помощью бота

В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🎯 Учись говорить «нет»

Тебя постоянно просят «быстренько помочь» с задачей, которую ты вообще не должен делать? Кажется, что отказ — это плохо, но на самом деле он спасает твоё время и нервы.

✔️ Совет: отвечай честно, но твёрдо. Например: «Сейчас я занят другим проектом, лучше подойти к [имя того, кто может помочь]». Не жертвуй своим временем ради чужой лени.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
📝 Подборка зарубежных вакансий

Senior Backend Engineer (Node.js)
Node.js, TypeScript, Next.js, AWS, PostgreSQL, Prisma ORM
до 4 500 $ | от 3 лет

Backend Developer Middle+ (Node.js)
Node.js, TypeScript, PostgreSQL, GraphQL, Express, Kubernetes
от 3 500 до 4 500 $ | от 3 лет

NodeJS Developer
Node.js, TypeScript, NestJS, React, PostgreSQL, Docker, Golang
от 2 500 $ | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ PHP 8.4: Curl: Новая опция CURLOPT_PREREQFUNCTION

Расширение Curl в PHP 8.4 представляет новую опцию CURLOPT_PREREQFUNCTION, позволяющую задать пользовательский callable для принятия решения о продолжении или прерывании запроса. Эта возможность доступна, если расширение собрано с libcurl 7.80.0 или более поздней версии.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔2
👩‍💻 Поиск самого длинного слова в строке

Напишите функцию, которая принимает строку и возвращает самое длинное слово. Если несколько слов имеют одинаковую длину, вернуть первое из них.

Пример:

const sentence = "JavaScript is an amazing programming language";
const result = findLongestWord(sentence);
console.log(result);
// Ожидаемый результат: "programming"


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

function findLongestWord(sentence) {
return sentence
.split(' ')
.reduce((longest, word) => (word.length > longest.length ? word : longest), '');
}

// Пример использования:
const sentence = "JavaScript is an amazing programming language";
const result = findLongestWord(sentence);
console.log(result);
// Ожидаемый результат: "programming"
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6👍4
⚠️ Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

Статья исследует ошибки, связанные с попытками создать «идеальный» код. Автор делится опытом, где стремление к универсальности, избыточное кэширование и усложнённые решения усложнили задачи вместо упрощения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👎1
👩‍💻 Сканирование папки на расширения файлов

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

Пример:

node fileExtensions.js ./example-folder
txt: 3
js: 5
json: 2


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

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

const folderPath = process.argv[2];

if (!folderPath) {
console.error('Укажите путь к папке.');
process.exit(1);
}

fs.readdir(folderPath, (err, files) => {
if (err) {
console.error('Ошибка чтения папки:', err.message);
return;
}

const extensionCount = files.reduce((acc, file) => {
const ext = path.extname(file).slice(1); // Получаем расширение без точки
if (ext) {
acc[ext] = (acc[ext] || 0) + 1;
}
return acc;
}, {});

console.log('Расширения файлов:');
for (const [ext, count] of Object.entries(extensionCount)) {
console.log(`${ext}: ${count}`);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📝 Подборка вакансий для джунов

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

Fullstack разработчик для веб-проектов
JavaScript, React, Vue.js, Angular, Node.js, Express, Webpack, HTML, CSS
от 25 000 ₽ | Без опыта

Инженер ручного тестирования (QA Manual)
SQL, REST, JSON, HTTP, Ручное тестирование
Уровень дохода не указан | опыт не указан
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10💩1
⚙️ Кэширование информации в Redis на NestJS

Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.

Читать...
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
👍3
📝 Подборка вакансий для джунов

NodeJS Бэкэнд разработчик
Node.js, TypeScript, JavaScript, SQL, Git, Bash
от 140 000 до 220 000 ₽ | от 3 лет

Разработчик Node.js (BackEnd) Middle +
TypeScript, Node.js, NestJS, TypeORM, WebSocket, PostgreSQL
от 250 000 до 330 000 ₽ | опыт не указан

Fullstack Developer
C#, Node.js, Angular, React, SOLID
Уровень дохода не указан | от 3 лет

Backend разработчик
PHP, Go, Yii 1, MySQL 8, RabbitMQ, Docker, Git
Уровень дохода не указан | от 3 лет

Fullstack-разработчик React, Node.js, MongoDB
React, Redux, TypeScript, SASS, Webpack, Vite, Node.js, ExpressJS, NestJS, MongoDB
от 170 000 до 230 000 ₽ | от 5 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡20😁4🤷‍♂1
📈 Отслеживание позиций торгового робота Московской биржи через CSV файл

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

Читать...
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
👍6👎1
👩‍💻 Обзор наследования в JavaScript

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

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