用node.js写一个简单的图书管理界面——功能:添加,删除,修改数据
以下是一个简单的Node.js图书管理系统的代码示例,包括添加、删除和修改图书的功能。这个示例使用了简单的fs
模块来存储数据,实际应用中可以使用数据库来管理数据。
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 模拟数据库,使用JSON文件存储图书信息
const DB_FILE = 'books.json';
// 初始化数据库
function initializeDb() {
if (!fs.existsSync(DB_FILE)) {
let initialData = {
books: []
};
fs.writeFileSync(DB_FILE, JSON.stringify(initialData));
}
}
// 获取数据库中的所有图书
function getAllBooks() {
let data = fs.readFileSync(DB_FILE);
return JSON.parse(data).books;
}
// 添加新图书
function addBook(book) {
let books = getAllBooks();
books.push(book);
let data = { books: books };
fs.writeFileSync(DB_FILE, JSON.stringify(data));
}
// 删除指定ID的图书
function deleteBook(id) {
let books = getAllBooks();
books = books.filter((book, index) => index !== id);
let data = { books: books };
fs.writeFileSync(DB_FILE, JSON.stringify(data));
}
// 修改指定ID的图书信息
function updateBook(id, book) {
let books = getAllBooks();
books[id] = book;
let data = { books: books };
fs.writeFileSync(DB_FILE, JSON.stringify(data));
}
// 主菜单
function mainMenu() {
console.log('\n图书管理系统');
console.log('1. 添加图书');
console.log('2. 删除图书');
console.log('3. 修改图书');
console.log('4. 退出');
console.log('请输入选项:');
}
// 添加图书
function addBookMenu() {
rl.question('请输入图书名称: ', (name) => {
rl.question('请输入图书作者: ', (author) => {
addBook({ name: name, author: author });
console.log('图书添加成功!');
mainMenu();
});
});
}
// 删除图书
function deleteBookMenu() {
rl.question('请输入要删除图书的ID: ', (id) => {
deleteBook(parseInt(id));
console.log('图书删除成功!');
mainMenu();
});
}
// 修改图书
function updateBookMenu() {
rl.question('请输入要修改图书的ID: ', (id) => {
rl.question('请输入新的图书名称: ', (name) => {
rl.question('请输入新的图书作者: ', (author) => {
updateBook(parseInt(id), { name: name, author: author });
console.log('图书修改成功!');
mainMenu();
});
});
});
}
// 程序入口
initializeDb();
mainMenu();
rl.on('line', (input) => {
switch(input) {
case '1':
addBookMenu();
break;
case '2':
deleteBookMenu();
break;
case '3':
updateBookMenu();
break;
case '4':
rl.close();
break;
default:
console.log('无效选项,请重新输入');
break
评论已关闭