project1
This commit is contained in:
70
nodeJS/Project/01/index.js
Normal file
70
nodeJS/Project/01/index.js
Normal file
@@ -0,0 +1,70 @@
|
||||
const prompt = require('prompt-sync')({ sigint: true });
|
||||
const fs = require('fs');
|
||||
const filePath = 'todolist.txt';
|
||||
|
||||
console.log("Welcome to Tiffy's to-do list!");
|
||||
|
||||
const name = prompt("What is your name? ");
|
||||
console.log(`Hello, ${name}!`);
|
||||
|
||||
const instruction = `You can:
|
||||
(1) Add items to the to-do list
|
||||
(2) Remove items from the to-do list
|
||||
(3) Show the to-do list
|
||||
(4) Exit the to-do list`;
|
||||
console.log(instruction);
|
||||
|
||||
function loadToDoList() {
|
||||
const data = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : '';
|
||||
return data ? data.split('\n').filter(item => item.trim() !== '') : [];
|
||||
}
|
||||
|
||||
let todoList = loadToDoList();
|
||||
|
||||
while (true) {
|
||||
const todo = prompt("Would you like to add, remove, show, or exit? ").toLowerCase();
|
||||
|
||||
switch (todo) {
|
||||
case "add":
|
||||
let condition_add = true;
|
||||
while (condition_add) {
|
||||
const add1 = prompt("What would you like to add to the to-do list? ");
|
||||
if (add1.toLowerCase() === "stop") {
|
||||
condition_add = false;
|
||||
}
|
||||
todoList.push(add1);
|
||||
console.log(`You have added "${add1}" to Tiffy's to-do list!`);
|
||||
console.log(`Type \"stop\" to return to the main menu.`);
|
||||
}
|
||||
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
|
||||
break;
|
||||
|
||||
case "remove":
|
||||
let condition_remove = true;
|
||||
while (condition_remove) {
|
||||
const remove1 = prompt("What would you like to remove from the to-do list? (Input the number on the list) ");
|
||||
if (remove1.toLowerCase() === "stop") {
|
||||
condition_remove = false;
|
||||
}
|
||||
const index = parseInt(remove1) - 1;
|
||||
const removedTask = todoList.splice(index, 1);
|
||||
console.log(`You have removed "${removedTask}" from Tiffy's to-do list!`);
|
||||
console.log(`Type \"stop\" to return to the main menu.`);
|
||||
}
|
||||
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
|
||||
break;
|
||||
|
||||
case "show":
|
||||
console.log("Tiffy's to-do list:");
|
||||
todoList.forEach((task, index) => console.log(`${index + 1}. ${task}`));
|
||||
break;
|
||||
|
||||
case "exit":
|
||||
console.log("Thank you for using Tiffy's to-do list.");
|
||||
return;
|
||||
|
||||
default:
|
||||
console.log("Hey! Tiffy doesn't know what you mean!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user