使用 Node.js 实现 To Do List 任务管理系统

简介

任务管理系统是一种常见的应用程序,它可以帮助我们记录和管理待办事项。在本文中,我们将使用 Node.js 构建一个简单的 To Do List 任务管理系统。本文适合初学者学习 Node.js,并希望构建基本 Web 应用程序。

技术栈

  • Node.js:用于构建后端应用程序。
  • Express.js:用于构建 Web 应用程序。
  • MongoDB:用于存储数据。
  • ejs:模板引擎。

环境搭建

为了开始构建我们的 To Do List 任务管理系统,我们需要确定环境。首先,我们需要安装 Node.js。在安装 Node.js 之后,我们可以使用 npm 包管理器来安装其他必要的软件包。

接下来,我们需要启动 MongoDB 实例。安装 MongoDB 并按照 MongoDB 官方文档 中的说明进行操作。然后,使用以下命令启动 MongoDB:

注意:/path/to/database 应该根据您的实际需要更改。

代码实现

应用程序配置

首先,让我们创建一个名为 app.js 的文件。在此文件中,设置应用程序配置。

在上面的代码中,我们创建了一个 Express 应用程序并设置了应用程序配置。其中,我们用了 ejs 作为模板引擎。

创建模型

接下来,我们需要创建一个模型来描述数据库中的数据。在本例中,我们将创建一个名为 Task 的模型。

在上面的代码中,我们使用 Mongoose 创建了 Task 模型,并将其导出以供后续使用。该模型包含任务的名称、描述和状态。其中,status 字段是一个枚举值,转换为 'todo''doing' 或者 'done' 的其中一个值。另外,我们使用了一个名为 timestamps 的选项,用于自动添加 createdAtupdatedAt 字段。

实现路由

现在我们将实现一些路由,用户将通过这些路由与应用程序进行交互。

渲染列表视图

首先,我们将创建视图,用于列出所有任务。在视图中,我们将能够查看任务的名称、描述和状态。然后,我们将创建一个路由来渲染列表视图。

首先,我们需要在应用程序根目录下的 views 文件夹中创建名为 index.ejs 的文件。代码如下:

然后,我们将创建一个路由,用于渲染列表视图。代码如下:

在上面的代码中,我们创建一个名为 '/' 的路由,并通过 Task.find({}) 从数据库中获取所有任务。然后,我们将任务列表和视图名称作为参数传递给 res.render()

渲染新建任务表单

接下来,我们将创建一个表单,用于添加新的任务。在视图中,我们将看到一个表单,该表单允许我们输入任务的名称、描述和状态。然后,我们将创建一个路由,用于渲染新表单。

在应用程序根目录下的 views 文件夹中,创建一个名为 new_task.ejs 的文件。代码如下:

然后,我们将创建一个路由,用于渲染新表单。代码如下:

在上面的代码中,我们创建了一个名为 /tasks/new 的路由,并渲染了一个名为 new_task 的视图。

处理创建任务表单

接下来,我们将处理上一个步骤中的表单。我们将创建一个路由,用于为提交的表单创建新任务。当我们提交表单时,将发送 POST 请求,此路由将获取请求并将其保存在数据库中。

在上面的代码中,我们创建了一个名为 /tasks 的路由,并使用 Task.save() 将任务保存在数据库中。如果保存成功,我们将重定向到根路由。否则,将重新呈现表单。

渲染编辑任务表单

现在,我们将创建一个表单,用于编辑任务。这个表单将允许我们更改任务的名称、描述和状态。然后,我们将创建一个路由,用于渲染编辑表单。

在应用程序根目录下的 views 文件夹中,创建一个名为 edit_task.ejs 的文件。代码如下:

然后,我们将创建一个路由,用于渲染编辑表单。代码如下:

在上面的代码中,我们创建了一个名为 /tasks/:id/edit 的路由,并使用 Task.findById() 查找要编辑的任务。如果成功查找到任务,我们将渲染名为 edit_task 的视图并将任务作为变量传递。

处理编辑任务表单

现在,我们将处理上一个步骤中的表单。我们将创建一个路由,用于更新任务。当我们提交表单时,将发送 PUT 请求,此路由将获取请求并将其更新到数据库中。

在应用程序根目录下的 views 文件夹中,创建一个名为 edit_task.ejs 的文件。代码如下:

在上面的代码中,我们创建了一个名为 /tasks/:id 的路由,并使用 Task.findById() 查找要更新的任务。然后,我们将使用 Task.save() 更新任务,并重定向到根路由。

删除任务

最后,我们将创建一个路由,用于删除任务。当我们想要删除一个任务时,我们将使用 DELETE 请求发送到该路由。

在上面的代码中,我们创建了一个名为 /tasks/:id 的路由,并使用 Task.findByIdAndDelete() 删除任务。然后,我们将重定向到根路由。

应用程序集成

现在,我们已经创建了所有必要的路由,现在将集成到应用程序中。

在上面的代码中,我们将所有路由加载到应用程序中,并使用 methodOverride 中间件来解析 DELETE 和 PUT 请求。

完成以上工作后,我们现在可以使用 To Do List 任务管理系统。访问 http://localhost:3000/tasks 即可查看所有任务。使用表单添加新任务或编辑现有任务。

总结

在本文中,我们通过使用 Node.js、Express.js 和 MongoDB 构建 To Do List 任务管理系统,了解了如何使用 Node.js 进行 Web 应用程序开发。通过学习本文,您应该增强对以下方面的理解:

  • 如何使用 Node.js 创建服务器端应用程序。
  • 如何使用 Express.js 创建 Web 应用程序。
  • 如何使用 MongoDB 存储和检索数据。

我们希望,借助本文,您能够更好的了解 Node.js 技术的应用,掌握构建实际应用的基本思路。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6531d91f7d4982a6eb3d39be


纠错
反馈