如何使用Node.js和ReactJS构建一个基本的CRUD应用程序
在本文中,我们将从头开始创建一个基本的学生应用程序。
应用程序功能:
- 创建一个新的学生
- 更新现有的学生
- 显示学生列表
- 删除一个学生
该项目中的REST API:
REST API | URL |
---|---|
GET | http://localhost:4000/students |
GET | /students/update-student/id |
POST | /students/create-student |
PUT | /students/update-student/id |
DELETE | /students/delete-student/id |
首先,我们将使用React.js处理应用程序的前端部分。
创建React应用程序并安装模块
步骤1: 让我们开始使用React构建前端部分。要创建一个新的React应用程序,请输入以下代码到终端并按Enter键。
步骤2: 进入React项目文件夹。
步骤3: 要运行React应用程序,请运行以下命令:
此命令会在以下URL中在浏览器中打开React应用程序: http://localhost:3000/
步骤4: 要构建React应用程序,我们需要安装一些外部模块。
NPM | 详情 |
---|---|
React-Bootstrap | React-Bootstrap与React一同发展和成长,成为您UI的绝佳选择。 |
React-Router-Dom | React-Router-Dom使您能够在React App中实现路由功能。 |
Axios | 这是一个基于promise的HTTP客户端,用于网络请求。 |
Formik | React中构建表单的优秀库。 |
Yup | Yup是用于表单验证的JavaScript架构生成器。 |
要安装,请在终端上运行以下代码。
步骤5:创建简单的React组件 – 在这一步中,我们将创建一些React组件来管理学生数据。
前往 src 文件夹,创建一个名为 Components 的文件夹,并在该目录下创建以下组件。
- StudentForm.js - 可重用的学生表单
- create-student.component.js - 负责创建新学生
- edit-student.component.js - 负责更新学生数据
- student-list.component.js - 负责显示所有学生
- StudentTableRow.js - 负责显示单个学生
项目结构: 它将如下所示
步骤6: 创建学生表单 – 在这一步中,我们将使用Formik和React-Bootstrap构建一个可复用的学生表单。这个表单包含了输入学生详细信息所需的所有字段。我们还使用Yup进行了客户端表单验证。将来,我们将使用这个组件来创建和更新学生信息。前往 src/Components/StudentForm.js 并写入以下代码。
StudentForm.js
步骤7:创建新学生: 在这一步中,我们将创建一个组件来添加一个新学生。我们已经创建了一个 StudentForm 组件来输入学生的详细信息。现在是使用这个组件的时候了。进入 src/Components/create-student.component.js 并编写以下代码。
create-student.component.js
步骤8:更新学生详情: 在这一部分中,我们将创建一个组件来更新学生的详情。我们有一个可重用的 StudentForm 组件,让我们再次使用它。我们将获取学生详情来重新初始化表单。打开 src/Components/edit-student.component.js 并编写以下代码。
edit-student.component.js
步骤9:显示学生列表: 在这一步中,我们将构建一个组件来在表格中显示学生的详细信息。我们将获取学生的数据,并遍历每个学生创建一个表格行。请转到 src/Components/student-list.component.js 并编写以下代码。
student-list.component.js
步骤10:显示单个学生: 在这一步中,我们将返回表格行,该行负责显示学生数据。进入 src/Components/StudentTableRow.js 并编写以下代码。
StudentTableRow.js
步骤11:编辑App.js: 最后,包含菜单使我们的MERN Stack CRUD应用程序可以进行路由。去 src/App.js 并写入以下代码。
App.js
步骤12:添加样式 – 转到 src/App.css 并编写以下代码。
App.css
现在,我们已经成功为我们的 mern-stack-app 创建了前端部分。 **现在,让我们来构建后端部分。在进入下一部分之前,先看一下前端部分在没有后端的情况下如何工作。
运行应用程序的步骤: 打开终端并输入以下命令。
输出:
现在我们将开始处理应用程序的后端部分。我们将在我们的 mern-stack-crud 文件夹中创建一个文件夹,用于管理服务器服务,如数据库、模型、架构、路由和API,将这个文件夹命名为 backend 。
步骤1: 运行命令以创建 backend 文件夹作为服务器,并进入其中。
步骤2:创建package.json – 接下来,我们需要创建一个单独的 package.json 文件来管理我们的 mern-stack-crud 应用程序的服务器。
访问 backend/package.json 文件将如下所示。替换 test 属性如下:
步骤3:安装Node依赖库 – 安装以下的Node依赖库。
NPM | 详情 |
---|---|
Express | Node.js框架,帮助创建强大的REST API。 |
body-parser | 从请求流中提取整个body部分,并在req.body上公开它。 |
cors | 这是一个Node.js包,帮助启用Access-Control-Allow-Origin CORS标头。 |
mongoose | 它是一个用于创建强大Web应用程序的NoSQL数据库。 |
安装上述依赖项,请在终端上运行以下代码。
您可以将nodemon安装为开发依赖项,以自动化服务器重新启动过程。
后端项目结构
步骤4:设置MongoDB数据库 – 在这一步中,我们将为我们的应用程序设置一个MongoDB数据库。在开始之前,请确保您的系统上安装了最新版本的MongoDB。在 backend 文件夹内创建一个名为 database 的文件夹。在 database 文件夹内创建一个名为 db.js 的文件。转到 backend/database/db.js 并编写以下代码。
db.js
我们声明了MongoDB数据库并将其命名为 reactdb 。
步骤5:定义Mongoose模式 – 现在,为与MongoDB数据库交互创建MongoDB模式。在 backend 文件夹内创建一个名为 models 的文件夹以保存与模式相关的文件,并在其中创建一个名为 Student.js 的文件来定义MongoDB模式。转到 backend/models/Student.js 并编写以下代码。
Student.js
我们在student Schema中声明了name,email和rollno字段及其相应的数据类型。
步骤6:使用ExpressJS创建路由 – 在这一步中,我们使用Express和Node.js设置了一些路由(REST APIs)用于创建、读取、更新和删除。这些路由将帮助我们管理在 mern-stack-crud 应用中的数据。在backend文件夹中创建一个名为routes的文件夹,并在其中创建一个名为student.routes.js的文件。在这个文件中定义我们的路由。
然后,进入 backend/routes/student.route.js 文件并编写以下代码。
student.route.js
步骤7:配置server.js – 我们几乎已经创建了所有的内容来实现我们的mern-stack-crud应用。现在,在backend文件夹的根目录下创建server.js文件。进入backend/server.js并写入以下代码。
server.js
现在,我们已经成功创建了我们的后端 mern-stack-app 。
我们的最终项目目录结构:
现在,启动MongoDB数据库服务器运行服务器。
运行应用程序的步骤: 在一个终端中打开并运行以下命令,通过在 backend 文件夹中保持Nodemon服务器的运行。
如果一切正常运行,你将在终端屏幕上看到以下输出。
最终输出: