WE_USE_JS Telegram 4881
👩‍💻 Задачка по NodeJS

Создайте небольшое приложение на 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
2



tgoop.com/we_use_js/4881
Create:
Last Update:

👩‍💻 Задачка по NodeJS

Создайте небольшое приложение на 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".');
}

BY Node.JS [ru] | Серверный JavaScript


Share with your friend now:
tgoop.com/we_use_js/4881

View MORE
Open in Telegram


Telegram News

Date: |

4How to customize a Telegram channel? To edit your name or bio, click the Menu icon and select “Manage Channel.” Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu.
from us


Telegram Node.JS [ru] | Серверный JavaScript
FROM American