Node.js 中的 Library_management_system

2025年3月13日 | 阅读 8 分钟

图书馆管理系统 是一种用于自动化图书馆运营的软件。它有助于展示和组织书籍,跟踪书籍,以及处理借阅和归还书籍等其他交易。这个应用程序可以帮助图书管理员轻松地管理图书馆。

项目目录结构

图书馆管理系统的目录结构被组织成模块化和易于管理的代码。在根目录下,我们有 app.js 文件,它初始化 Express 应用程序并连接到 MongoDB。models 目录包含 book.js 和 user.js,它们定义了书籍和用户的模式。routes 文件夹包含 index.js,其中定义了应用程序的所有路由以处理图书相关操作。views 文件夹存储 EJS 模板,包括可重用页眉和页脚组件的 partials。字段包括 title,这是一个字符串,表示书名;author 是一个字符串,表示书的作者。"ISBN" 是一个 字符串,表示国际标准书号;publisheddate 是日期数据类型,表示图书出版的日期;quantity 是一个数字,表示图书馆中书籍的数量。

  • 首先,创建一个名为 library_management_system 的文件夹。
  • 在该文件夹中,使用命令 "npm init" 创建一个 package.json 文件。
  • 之后,使用命令 "npm i express mongoose ejs" 安装所有必需的包。
Library_management_system in Node.js

模型文件夹

  • 文件名 book.js

上面的代码用于定义用于创建具有预定义字段的新书籍的模式。字段包括 title,这是一个表示书名的字符串;author 是一个表示书名的字符串。"isbn" 是一个字符串,表示国际标准书号;publishedDate 是日期数据类型,表示图书出版的日期;quantity 是一个数字,表示图书馆中书籍的数量。

  • 文件名 user.js

此代码用于定义用户 Schema,其中包含 name、email、password 和 borrowedBooks 等字段。borrowedbook 是一个数组,其中包含用户从图书馆借阅的书籍名称。此模式对于管理图书馆管理系统中的书籍很有用。此模式用于识别和验证使用该应用程序的人员。

  • public 文件夹

css 子文件夹

文件名 style.css

public 文件夹用于存储应用程序中使用的静态文件,如图像,这些文件对于应用程序网页的样式很有用。

  • routes 文件夹

文件名 index.js

以上文件包含负责应用程序路由的代码。此代码首先导入 express 库,然后创建一个 router 实例。之后,从 models 导入 book 模型以供使用。Home 路由渲染 index 页面,该页面具有根 URL "/"。这被视为我们应用程序的主页。

URL 为 "/books" 的第二条路由用于显示所有书籍。这将渲染数据库中的所有书籍及其各自的书籍信息。它使用 "find()" 方法从数据库检索所有书籍。

当用户访问 "/books/add" 时,服务器将渲染用户需要输入与书籍相关的所有必要信息的表单,并且用户必须提交书籍才能将其保存在图书馆中。之后,带有 post 请求的路由 "/books/add" 将书籍发布到数据库。它使用 "save()" 方法存储数据。成功插入书籍后,它会将用户重定向到显示所有书籍的 "/books" 页面。

"/books/edit/:id" 路由用于编辑具有给定 ID 的书籍。用户可以在书籍表单中编辑书籍详细信息并保存更新后的书籍。更新后的书籍保存在 post 请求中。此处,id 是每本书的唯一标识符。

带有 "/books/delete/:id" URL 的另一个 post 请求用于从 数据库 中删除具有给定 ID 的特定书籍。它使用 "findIdAndDelete" 方法从数据库中移除书籍。

  • views 文件夹

文件名 add_block.ejs

上面的代码用于显示一个表单,该表单用于为图书馆管理系统添加新书。它使用 EJS 模板。它包含一个带有 title、author、ISBN、published date 和 quantity 的表单。用户提交表单时,表单使用 POST 方法将数据发送到 "/books/add" 路由。之后,书籍数据将添加到数据库。

Library_management_system in Node.js
  • 文件名 book.ejs

此代码用于显示图书馆中的所有书籍及其详细信息。它包括页眉和页脚 partials。它包含一个 div 内部的 container 类,其中显示了书籍列表。使用表格显示书籍的详细信息。因此,使用像 "table" 和 "table-bordered" 这样的 bootstrap 类来创建表格。表格中有一个操作列,包含 "Edit" 和 "Delete" 选项。每当选择编辑选项时,它会将用户重定向到编辑表单,在该表单中可以编辑书籍详细信息。当用户单击删除按钮时,该特定书籍将从图书馆数据库中永久删除。此处,代码被包装在容器中以获得更好的对齐。

Library_management_system in Node.js
  • 文件名 edit_book.ejs

上面的文件用于编辑书籍的详细信息。当用户在书籍列表查看时单击编辑按钮时,此页面会显示给用户。此页面包含预先填写的表单,其中包含原始书籍详细信息,然后用户将更新详细信息。当用户单击提交按钮时,数据库中的书籍详细信息将永久更改。更新的表单数据发送到 "/books/edit/:id" 路由。

Library_management_system in Node.js
  • 文件名 index.ejs

以上是主页模板,其中包含应用程序的标题,即图书馆管理系统,它有两个链接。您将引导用户进入书籍列表,其中包含所有书籍的详细信息。另一个链接将用户引导到可以向图书馆添加书籍的地方。

Library_management_system in Node.js
  • partials 子文件夹

文件名 footer.ejs

这是应用程序的页脚,其中包含页脚内容并显示版权声明。在脚本部分,有 bootstrap 所需的链接。

文件名 header.ejs

这是应用程序的页眉,其中包含导航栏。此导航栏使用 bootstrap 类来设置导航栏的样式。指向主页、书籍列表和添加书籍页面的链接存在于导航栏组件中。此页眉将出现在应用程序的每个页面上。

  • library_management_system 文件夹

文件名 app.js

上述文件是整个应用程序的入口点。它设置 express 服务器并连接 MongoDB 数据库。它定义了中间件和路由。

  • 此处,初始化了 express,并使用 "express.urlencoded()" 来解析表单数据。
  • MongoDB 连接:使用 mongoose 库连接 MongoDB 数据库。
  • 它从 public 目录提供 CSS 等静态资源。
  • 它将 EJS 配置为模板引擎。
  • routes 文件夹下 inder.js 中的所有路由都由这里处理。
  • 它在指定端口上启动服务器。

结论

总之,本文将清楚地提供创建图书馆管理系统的分步过程。本文还解释了系统中存在的每个过程和功能。它还提供了使用 Node.js 作为后端、MongoDB 作为数据库以及 Ejs 作为前端来实现该项目的代码。