JavaScript, незаменимый компонент современной веб-разработки, отличается универсальностью и мощью. Однако даже у такого популярного инструмента есть свои сложности. Давайте разберёмся в дополнительных, часто упускаемых из виду аспектах, делающих JavaScript менее идеальным в определённых ситуациях.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
process
— это глобальный объект в Node.js, который предоставляет информацию и управление текущим процессом. Через process.argv
можно получить массив аргументов командной строки.// Запуск: node script.js привет мир
const args = process.argv.slice(2); // Убираем первые два аргумента (node и имя файла)
console.log(args); // ['привет', 'мир']
🗣️ В этом примере process.argv позволяет извлечь пользовательские аргументы командной строки, что полезно для CLI-приложени
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Full-Stack разработчик (JavaScript/TypeScript, Prisma, React, Node.js)
Программист (Backend Developer)
Разработчик Node.js/Nest.js
NodeJS Backend Developer (Middle / Senior)
Please open Telegram to view this post
VIEW IN TELEGRAM
Как в приложении Node.js происходит обработка клиентских запросов? Какая функция помогает обрабатывать тот или иной запрос? Чтобы ответить на эти вопросы, заглянем в "закулисье" маршрутизации фреймворка Express.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Напишите скрипт, который создаёт HTTP-сервер. При запросе на сервер он должен возвращать текст
"Hello, World!"
.•
Сервер запускается на порту 3000.•
При обращении к https://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('Сервер запущен на https://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Хотите интегрировать ShakaPlayer в приложение Lightning для управления воспроизведением? Изучите краткое руководство по расширению стандартного медиаплеера в Lightning и использованию его с ShakaPlayer.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья объясняет использование модульных CSS-архитектур, таких как BEM, SMACSS и OOCSS, в проектах на Next.js. Рассматриваются подходы к созданию масштабируемой и организованной структуры стилей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Напишите скрипт, который принимает название города и выводит текущую температуру в этом городе, используя бесплатный API OpenWeatherMap.
Пример использования:
node weather.js London
Текущая температура в London: 15°C
Решение задачи
const https = require('https');
const city = process.argv[2];
const apiKey = 'your_openweathermap_api_key'; // Замените на свой API-ключ
if (!city) {
console.error('Пожалуйста, укажите город.');
process.exit(1);
}
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}` ;
https.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
const weather = JSON.parse(data);
if (weather.main) {
console.log(`Текущая температура в ${city}: ${weather.main.temp}°C`);
} else {
console.error(`Не удалось получить данные о погоде для города: ${city}`);
}
});
}).on('error', (err) => {
console.error('Ошибка:', err.message);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3
Junior Node.js developer
Node.js Developer
Junior QA Engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Детальный разбор того, как простой анализ производительности помог обнаружить неэффективность WebSocket и оптимизировать передачу данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
worker_threads
— это модуль в Node.js, который позволяет создавать дополнительные потоки для выполнения задач параллельно с основным потоком. Он особенно полезен для вычислительно затратных операций, которые могут блокировать выполнение кода в основном потоке событий.const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
// Главный поток
console.log('Главный поток запущен');
const worker = new Worker(__filename); // Создаем воркер
worker.on('message', (msg) => {
console.log('Результат от воркера:', msg);
});
worker.postMessage('Начать расчет'); // Передаем сообщение воркеру
} else {
// Воркер
parentPort.on('message', (msg) => {
console.log('Сообщение от главного потока:', msg);
// Выполняем тяжелый расчет
const result = Array(1e6).fill(0).reduce((acc, _, i) => acc + i, 0);
parentPort.postMessage(result); // Отправляем результат обратно
});
}
🗣️ В этом примере главный поток создает воркер, который выполняет вычисление суммы чисел, не блокируя основной поток. Это позволяет использовать многопоточность в JavaScript для высоконагруженных операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👏1
Архитектор, разработчик node js (nest js)
•
JavaScript (ES5, ES6, ES7, ES8, ES9), NestJS (Node.js), Git, Docker•
от 200 000 ₽ | Средний (Middle)Backend (Node.js) разработчик
•
TypeScript, Node.js, JavaScript•
Уровень дохода не указан | Средний (Middle)JavaScript FullStack разработчик
•
JavaScript, HTML, CSS, TypeScript, Node.js, Vue.js (2 и 3 версия), Git, SQL (MySQL, PostgreSQL), OAuth-протокол•
от 80 000 до 130 000 ₽ | Средний (Middle)Frontend разработчик (Vue)
•
JavaScript, HTML, CSS, Vue.js, Vuex, Flexbox, Grid Layout, Gulp, Webpack, REST API, Английский язык•
Уровень дохода не указан | Средний (Middle)Node.js Backend Developer (проект СЭД)
•
TypeScript, Node.js, JavaScript, React, MERN-стек (MongoDB, Express/Koa, React.js, Node.js), NoSQL/SQL (MongoDB, PostgreSQL), CI/CD•
Уровень дохода не указан | Средний (Middle)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
👍1
Напишите скрипт, который принимает путь к папке, считывает все файлы в этой папке и записывает их имена, размеры (в байтах) и дату последнего изменения в JSON-файл.
Пример использования:
node generateFileInfo.js ./example-folder
"name": "file1.txt",
"size": 1234,
"lastModified": "2023-09-01T12:34:56.789Z"
"name": "file2.js",
"size": 456,
"lastModified": "2023-09-02T14:56:23.123Z"
Решение задачи
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 fileInfo =files.map (file => {
const filePath = path.join(folderPath, file);
const stats = fs.statSync(filePath);
return {
name: file,
size: stats.size,
lastModified: stats.mtime.toISOString(),
};
});
fs.writeFile('files.json', JSON.stringify(fileInfo, null, 2), err => {
if (err) {
console.error('Ошибка записи файла:', err.message);
return;
}
console.log('Информация о файлах сохранена в files.json');
});
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
• Интеграция внешнего файлового сервера https://min.io в фулстек приложение на NestJS и Angular
• Разработка Telegram Mini App с помощью React
• Почему мы выбрали gRPC вместо tRPC?
• Разворачиваем приложение Next.js с базой данных PostgreSQL и задачей Cron на облачном сервере Ubuntu Linux
• Создаём современные npm-пакеты и преодолеваем трудности совместимости ESM и CJS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
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
• История: работа в чешском Red Hat
• Циничные заметки о карьере в IT от «гейткипера»
• Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”
• Всероссийский рейтинг IT-брендов работодателей 2024
• Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Статья объясняет технику делегирования событий в веб-разработке, показывая, как использование одного слушателя на родительском элементе упрощает управление событиями и повышает производительность.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
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