Express.js 中使用 MySQL 实现数据存储

在开发 Web 应用时,数据存储是一个必不可少的环节。而 MySQL 作为一种广泛使用的关系型数据库,其在前端开发中也有着重要的作用。本文将介绍如何在 Express.js 中使用 MySQL 实现数据存储。

准备工作

在使用 MySQL 之前,需要先安装 MySQL 数据库,并创建一个数据库和一张表。以 Windows 系统为例,可以按照以下步骤进行安装:

  1. 下载 MySQL 安装包并解压。
  2. 配置环境变量,将 MySQL 的 bin 目录加入 PATH 中。
  3. 打开命令行工具,输入 mysql -u root -p 进入 MySQL 数据库。
  4. 创建一个数据库,如 mydb,并指定字符集为 utf8mb4
    ------ -------- ---- --------- --- ------- ------- -------------------
  5. 创建一张表,如 users,包含 idnameemail 三个字段。
    ------ ----- ----- -
      -- --- --- ---- ---------------
      ---- ------------ --- -----
      ----- ------------ --- -----
      ------- --- ----
    --

安装依赖

在 Express.js 中使用 MySQL,需要安装以下两个依赖:

  • mysql2:MySQL 客户端。
  • sequelize:ORM(Object-Relational Mapping)框架,用于操作数据库。

可以使用以下命令进行安装:

--- ------- ------ ---------

配置连接

在 Express.js 中使用 MySQL,需要配置数据库连接。可以在应用的入口文件(如 app.js)中进行配置:

----- - --------- - - ---------------------

----- --------- - --- ----------------- ------- ----------- -
  -------- --------
  ----- ------------
  ----- -----
  ------- -
    ----------- ------
  --
---

------ -- -- -
  --- -
    ----- -------------------------
    ----------------------- --- ---- ----------- ----------------
  - ----- ------- -
    --------------------- -- ------- -- --- ----------- -------
  -
-----

其中,mydb 是数据库名称,rootpassword 分别是 MySQL 的用户名和密码,localhost 是 MySQL 的主机名,3306 是 MySQL 的端口号。define.timestamps 表示不使用默认的时间戳字段。

创建模型

在使用 Sequelize 操作数据库时,需要先定义模型。模型是指数据库中的表在代码中的映射,包含表的结构和操作。可以通过以下代码创建一个 User 模型:

----- - --------- - - ---------------------

----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- -----
  --
  ----- -
    ----- ----------------------
    ---------- ------
  --
  ------ -
    ----- ----------------------
    ---------- ------
  --
-- -
  ---------- --------
---

其中,DataTypes 是 Sequelize 中的数据类型,idnameemail 分别是 users 表中的三个字段,primaryKey 表示主键,autoIncrement 表示自增,allowNull 表示不允许为空。

增删改查

在定义好模型后,可以通过模型进行增删改查操作。以下是一些示例代码:

增加数据

----- ---------- - ----- ------ ------ -- -
  ----- ---- - ----- ------------- ----- ----- ---
  ------ ---------- ------ ---- ---
--

删除数据

----- ---------- - ----- ---- -- -
  ----- ---- - ----- -------------- ------ - -- - ---
  ------ ---- --- --
--

修改数据

----- ---------- - ----- ---- ----- ------ -- -
  ----- ---- - ----- ------------- ----- ----- -- - ------ - -- - ---
  ------ ------- --- --
--

查询数据

----- ------- - ----- ---- -- -
  ----- ---- - ----- ------------------
  ------ ---- - ---------- ------ ---- -- - -----
--

----- -------- - ----- -- -- -
  ----- ----- - ----- ---------------
  ------ ---------------- -- ---------- ------ ---- ----
--

其中,findByPk 根据主键查询单条数据,findAll 查询所有数据。

总结

本文介绍了如何在 Express.js 中使用 MySQL 实现数据存储。通过配置连接、创建模型和定义增删改查操作,可以方便地操作数据库。同时,Sequelize 还支持事务、关联查询等高级功能,可以满足不同场景下的需求。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65c22f49add4f0e0ffc1ef85


猜你喜欢

  • Kubernetes 中使用 Helm 部署服务的步骤详解

    前言 在 Kubernetes 中,部署服务是一项非常重要的任务。但是,手动部署每个服务都是非常繁琐的,尤其是在大规模的应用程序中。为了解决这个问题,我们可以使用 Helm 来自动化 Kubernet...

    8 个月前
  • 如何使用 JavaScript 解决网页内跨特定区域的焦点导航的无障碍性问题?

    无障碍性是指让所有人都能够轻松访问和理解网站的能力。在网页设计中,焦点导航是一个重要的无障碍性问题。在网页中,用户可以使用 Tab 键在不同的表单控件之间进行导航。

    8 个月前
  • Promise 在 Kotlin 中的应用实践

    Promise 是前端开发中常用的异步编程解决方案之一,它可以帮助我们更加方便地处理异步操作,避免了回调地狱的问题。在 Kotlin 中,我们同样可以使用 Promise 来处理异步操作,本文将介绍 ...

    8 个月前
  • 初学者指南:使用 Mocha 和 Chai 测试 JavaScript 代码

    随着 JavaScript 的广泛应用,测试 JavaScript 代码的重要性也越来越受到重视。Mocha 和 Chai 是两个流行的 JavaScript 测试框架,它们提供了一种简单易用的方式来...

    8 个月前
  • 使用 TailwindCSS 精简和优化 CSS

    在前端开发中,CSS 是不可或缺的一部分。但是,CSS 的编写往往会变得非常繁琐和冗长,尤其是在大型项目中。这时候,使用 CSS 框架就成为了一种不错的选择。其中,TailwindCSS 是一个非常流...

    8 个月前
  • 利用 Custom Elements 实现 UI 组件状态管理

    在前端开发中,UI 组件是不可避免的一个部分。在构建复杂的应用程序时,UI 组件的状态管理变得越来越困难。在这篇文章中,我们将介绍如何使用 Custom Elements 来实现 UI 组件状态管理。

    8 个月前
  • 使用 Jest Mock 功能来模拟第三方 API

    在前端开发中,我们经常需要调用第三方 API 来获取数据。然而,在开发和测试过程中,我们并不希望每次都去调用真实的 API。这时候,就需要使用 Jest Mock 功能来模拟第三方 API。

    8 个月前
  • Fastify 应用中正确使用 ORM 的方法

    前言 在现代的 Web 应用中,ORM(Object-Relational Mapping)已经成为了不可或缺的一部分。ORM 可以让我们更加方便地操作数据库,同时也可以减少我们编写 SQL 语句的工...

    8 个月前
  • CSS Flexbox 布局:响应式页面的制作经验

    CSS Flexbox 布局:响应式页面的制作经验 前言 在过去的网页设计中,我们经常使用传统的盒子模型来布局页面,但是随着移动设备的普及,我们需要更加灵活和响应式的布局方式。

    8 个月前
  • ES6/ES7/ES8/ES9: 从 Promise 到 async/await

    前端开发中,异步编程一直是一个非常重要的话题。在 ES6/ES7/ES8/ES9 中,Promise 和 async/await 成为了异步编程中最常用的两种方式。

    8 个月前
  • Docker 容器中安装 Tomcat 及 JDK,并测试部署 war 包

    前言 Docker 是一种开源的容器化平台,可以将应用程序及其依赖项打包成容器,以便在任何地方运行。Tomcat 是一个常用的 Java Web 应用服务器,而 JDK 是 Java 开发环境。

    8 个月前
  • ES9 中新增的正则表达式命名捕获组及使用方法

    在 ES9 中,JavaScript 新增了正则表达式命名捕获组的功能,它可以使得正则表达式的匹配更加灵活和方便。本文将详细介绍 ES9 中新增的正则表达式命名捕获组的使用方法,并提供示例代码以供学习...

    8 个月前
  • 原生 JS 实现 SPA 路由

    在前端开发中,单页应用(SPA)已经成为了一种非常流行的开发方式。其中,路由是 SPA 中不可或缺的一部分。本文将介绍如何使用原生 JS 实现 SPA 路由,并带有详细的代码示例。

    8 个月前
  • ES7 引入的具名捕获组解决正则表达式表达式嵌套的问题

    在之前的正则表达式中,我们经常使用捕获组来进行匹配操作。但是当我们需要匹配多个嵌套的表达式时,捕获组的使用会变得非常复杂和繁琐。为了解决这个问题,ES7 引入了具名捕获组。

    8 个月前
  • ES6 的 Map 和 Reduce 函数在数组操作中的应用

    在前端开发中,我们经常需要对数组进行操作,比如筛选、排序、统计等等。ES6 中提供了 Map 和 Reduce 函数,可以方便地对数组进行操作,提高效率和代码可读性。

    8 个月前
  • Redux 是怎么协调 action 的?

    Redux 是一个流行的 JavaScript 应用程序状态管理库,它提供了一种可预测的方式来管理应用程序的状态。Redux 通过一系列的 action 来更新状态,但是当多个 action 同时发生...

    8 个月前
  • PM2 出现 Error: EAI_AGAIN 在 Win10 下启动怎么解决?

    在使用 PM2 来管理 Node.js 应用程序时,有时会遇到 Error: EAI_AGAIN 错误。这个错误通常是由 DNS 查询失败引起的,它会导致 PM2 无法启动应用程序。

    8 个月前
  • 如何在 Kubernetes 中部署 Fluentd 进行日志收集和分析

    前言 在现代化的应用中,日志收集和分析是一个必不可少的环节。而 Kubernetes 作为一个流行的容器编排系统,也提供了很多方便的方式来部署和管理日志收集和分析工具。

    8 个月前
  • 解决 Deno 启动时无法加载库文件的问题

    Deno 是一个用于运行 JavaScript 和 TypeScript 的运行时环境,它的设计目标是安全、稳定和可靠。然而,在使用 Deno 进行开发时,有时会遇到无法加载库文件的问题。

    8 个月前
  • Socket.io 利用 Redis 实现跨服务器通信的方法

    前言 随着互联网技术的发展,Web 应用越来越复杂,前端的工作也变得越来越重要。在 Web 应用中,前端与后端之间的通信是非常重要的一环。Socket.io 是一个非常流行的实现实时通信的工具,但是在...

    8 个月前

相关推荐

    暂无文章