Недавно я узнал о corepack, инструменте, работающем с Node.js и решающем множество проблем с менеджерами пакетов. С этого момента буду использовать его в своём процессе разработки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡1🔥1
Создайте приложение на Node.js, которое работает как таймер обратного отсчёта. Программа должна принимать количество секунд в качестве аргумента командной строки и каждую секунду выводить сообщение с оставшимся временем: "Осталось X секунд". Когда отсчёт завершится, программа должна вывести "Время вышло!" и остановиться.
Осталось 10 секунд
Осталось 9 секунд
...
Осталось 1 секунда
Время вышло!
Решение задачи
const seconds = parseInt(process.argv[2]);
if (isNaN(seconds) || seconds <= 0) {
console.log('Введите корректное количество секунд.');
process.exit(1);
}
let remainingTime = seconds;
const countdown = setInterval(() => {
if (remainingTime > 0) {
console.log(`Осталось ${remainingTime} секунд`);
remainingTime--;
} else {
console.log('Время вышло!');
clearInterval(countdown);
}
}, 1000);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1
• Как мы заработали 100 000 рублей за 3 месяца, запустив простой конвертер картинок в США
• Дело было вечером или Создаем веб-приложение за 5 часов
• Разработка архитектуры хранения данных для сайта на «Битрикс»
• Как не гундеть, а доработать веб-сервис самому без помощи разработчиков
• Трассировка OpenTelemetry в 200 строк кода
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Исторически сложилось так, что в Node.js отсутствовал интегрированный прогонщик тестов, что вынуждало разработчиков полагаться на сторонние фреймворки, такие как Jest или Mocha
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
На «ванильном» JavaScript сейчас почти никто не пишет, но кроме мощных фреймворков есть и небольшие библиотеки с интересными возможностями. В наш список попали наиболее полезные из них, часто применяемые веб-разработчиками.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱1🌚1
Child Processes — это модуль в Node.js, который позволяет запускать дочерние процессы для выполнения команд в операционной системе. Это полезно для выполнения многозадачных операций, таких как запуск команд оболочки или параллельные вычисления.
ls
в терминале и вывода результата в консоль.const { exec } = require('child_process');
exec('ls', (error, stdout, stderr) => {
if (error) {
console.error(`Ошибка: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
return;
}
console.log(`Результат команды:\n${stdout}`);
});
🗣️ Child Processes позволяет запускать системные команды и выполнять параллельные операции вне основного потока Node.js.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Одним из главных нововведений стало то, что Deno теперь практически полностью совместим с пакетами npm. Это значит, что разработчики могут легко интегрировать модули пакета в свои Deno-проекты.
Таким образом, прямо сейчас более 2 млн npm-модулей доступны для использования без необходимости перехода на Node.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣9👍2😁2❤1🦄1
Способность понимать Node по-прежнему остаётся важным навыком, если вы фронтэнд разработчик. Deno появился как ещё один способ запуска JavaScript вне браузера, но огромная экосистема инструментов и программного обеспечения Node, означают, что в ближайшее время он никуда не денется.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Предположим, что мы сделали обновление, но
npm publish
выдаёт ошибку. Как исправить ошибку: "You cannot publish over the previously published versions"Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Vue.js – один из самых популярных фреймворков для фронтенд-разработки и один из самых простых в изучении. Рассказываем, на что нужно обратить внимание желающим освоить его с нуля новичкам.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6👍3❤2
Создайте приложение на Node.js, которое эмулирует систему регистрации и входа пользователей. Программа должна принимать два аргумента командной строки: "register" или "login" и имя пользователя. Если пользователь регистрируется, программа должна сохранить его в текстовый файл (
users.txt
). Если пользователь пытается войти в систему, программа должна проверить, зарегистрирован ли этот пользователь в файле, и вывести соответствующее сообщение.•
node app.js register Alice
— добавляет пользователя Alice в файл.•
node app.js login Alice
— проверяет, существует ли Alice в файле, и выводит сообщение об успешном входе или ошибке.Решение задачи
const fs = require('fs');
const action = process.argv[2];
const username = process.argv[3];
const filePath = 'users.txt';
if (!action || !username) {
console.log('Используйте: node app.js <register|login> <username>');
process.exit(1);
}
// Функция для регистрации пользователя
function registerUser(username) {
fs.appendFile(filePath, `${username}\n`, (err) => {
if (err) {
console.error('Ошибка регистрации:', err);
process.exit(1);
}
console.log(`Пользователь ${username} зарегистрирован.`);
});
}
// Функция для входа пользователя
function loginUser(username) {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err);
process.exit(1);
}
const users = data.split('\n').map(user => user.trim());
if (users.includes(username)) {
console.log(`Пользователь ${username} успешно вошёл в систему.`);
} else {
console.log(`Пользователь ${username} не найден.`);
}
});
}
// Логика обработки команд
if (action === 'register') {
registerUser(username);
} else if (action === 'login') {
loginUser(username);
} else {
console.log('Неизвестное действие. Используйте "register" или "login".');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁2❤1
Объект URL в JavaScript представляет URL-адрес и предоставляет удобные методы для работы с ним. Он позволяет анализировать, конструировать и декодировать URL-адреса.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Когда начинаешь изучать JavaScript, сначала чувствуешь эйфорию: очень легко работать с переменными, не нужно следить за типами, просто назвал и пользуешься. Но с великой свободой приходит великая ответственность.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1👎1
process.hrtime()
в Node.js?process.hrtime()
— это метод, который возвращает высокоточное время в виде массива из двух чисел: секунд и наносекунд. Он используется для точного измерения времени выполнения кода или определенных операций, так как имеет более высокую точность, чем Date.now().process.hrtime()
.// Начальное время
const startTime = process.hrtime();
// Выполняем код, время выполнения которого нужно измерить
for (let i = 0; i < 1e6; i++) {}
// Измеряем конечное время
const diff = process.hrtime(startTime);
console.log(`Время выполнения: ${diff[0]} сек, ${diff[1] / 1e6} мс`);
🗣️ process.hrtime() позволяет измерять временные интервалы с высокой точностью, что полезно для оптимизации производительности в приложениях Node.js.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
• Пишем свой плагин для Webpack
• Как использовать Google Sheets в качестве базы данных
• Как мы полностью обновили VK Мессенджер: переписать нельзя рефакторить
• Object.freeze и Object.seal в JS
• Как выжить под руководством микроменеджера и откуда берется гиперконтроль — личный опыт и полезные советы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как оптимизировать производительность приложения NodeJS, чтобы максимально улучшить пользовательский опыт? Это один из самых частых вопросов на собеседовании. Ответить на него правильно помогут советы опытного бэкенд-инженера.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
"Чему равно this в данном случае?" - этот вопрос часто сбивает с толку новичков в JavaScript-программировании. Предлагаем четкий алгоритм, который поможет быстро определить значение ключевого слова this.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Создайте небольшое приложение на Node.js, которое управляет списком задач. Программа должна принимать три аргумента командной строки: действие (
add
, list
или remove
), название задачи и опционально индекс задачи для удаления. Программа должна хранить задачи в текстовом файле (tasks.txt
) и уметь добавлять новые задачи, выводить список всех задач и удалять задачу по индексу.•
node app.js add "Сделать уборку"
— добавляет задачу "Сделать уборку" в файл.•
node app.js list
— выводит все задачи из файла с их индексами.•
node app.js remove 1
— удаляет задачу с индексом 1 из файла.Решение задачи
const fs = require('fs');
const action = process.argv[2];
const task = process.argv[3];
const filePath = 'tasks.txt';
if (!action) {
console.log('Используйте: node app.js <add|list|remove> [task|index]');
process.exit(1);
}
// Функция для добавления новой задачи
function addTask(task) {
fs.appendFile(filePath, `${task}\n`, (err) => {
if (err) {
console.error('Ошибка при добавлении задачи:', err);
process.exit(1);
}
console.log(`Задача "${task}" добавлена.`);
});
}
// Функция для вывода всех задач
function listTasks() {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err);
process.exit(1);
}
const tasks = data.trim().split('\n');
if (tasks.length === 0 || (tasks.length === 1 && tasks[0] === '')) {
console.log('Список задач пуст.');
} else {
console.log('Список задач:');
tasks.forEach((task, index) => {
console.log(`${index + 1}. ${task}`);
});
}
});
}
// Функция для удаления задачи по индексу
function removeTask(index) {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err);
process.exit(1);
}
const tasks = data.trim().split('\n');
if (index < 1 || index > tasks.length) {
console.log('Некорректный индекс задачи.');
return;
}
tasks.splice(index - 1, 1);
fs.writeFile(filePath, tasks.join('\n'), (err) => {
if (err) {
console.error('Ошибка при удалении задачи:', err);
process.exit(1);
}
console.log(`Задача под номером ${index} удалена.`);
});
});
}
// Логика обработки команд
if (action === 'add') {
if (!task) {
console.log('Введите название задачи для добавления.');
} else {
addTask(task);
}
} else if (action === 'list') {
listTasks();
} else if (action === 'remove') {
const index = parseInt(task, 10);
if (isNaN(index)) {
console.log('Введите корректный номер задачи для удаления.');
} else {
removeTask(index);
}
} else {
console.log('Неизвестное действие. Используйте "add", "list" или "remove".');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Разница между
export default xxx
и export { xxx as default }
в JavaScript может показаться малозаметной, но может повлиять на поведение кода.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥1