Создайте приложение на 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
❤8
Объект URL в JavaScript представляет URL-адрес и предоставляет удобные методы для работы с ним. Он позволяет анализировать, конструировать и декодировать URL-адреса.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Когда начинаешь изучать JavaScript, сначала чувствуешь эйфорию: очень легко работать с переменными, не нужно следить за типами, просто назвал и пользуешься. Но с великой свободой приходит великая ответственность.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍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
• Пишем свой плагин для Webpack
• Как использовать Google Sheets в качестве базы данных
• Как мы полностью обновили VK Мессенджер: переписать нельзя рефакторить
• Object.freeze и Object.seal в JS
• Как выжить под руководством микроменеджера и откуда берется гиперконтроль — личный опыт и полезные советы
Please open Telegram to view this post
VIEW IN TELEGRAM
Как оптимизировать производительность приложения 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
❤3
Создайте небольшое приложение на 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
❤1
Разница между
export default xxx
и export { xxx as default }
в JavaScript может показаться малозаметной, но может повлиять на поведение кода.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В последнее время браузеры стремительно обретают довольно важные возможности. Возможности, для реализации которых могло потребоваться несколько библиотек JavaScript (или CSS), теперь доступны в браузерах из коробки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Как избавиться от ненужных файлов в образе докера? Выполним контейнеризацию приложения и простую оптимизацию размеров образа Docker.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM