Express.js 结合 MySQL 实现注册登录及用户信息查询

随着互联网的发展,Web 应用程序成为了越来越多人使用的工具。作为 Web 应用程序的核心架构之一,前端技术越来越重要。Express.js 是一种流行的 Node.js 框架,它简化了 Web 应用程序的开发过程。本文将介绍 Express.js 结合 MySQL 实现注册登录及用户信息查询的方法。

环境准备

在开始实现前,我们需要完成以下环境准备:

  • Node.js 环境
  • MySQL 数据库

创建 Express.js 项目

首先,打开命令行工具,创建一个新项目文件夹,并使用 npm 初始化。在命令行中输入以下命令:

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

按照提示一步一步完成项目初始化。完成后,我们可以使用以下命令安装 Express.js 和其他丰富的中间件:

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

安装完成后,我们可以在项目根目录创建一个名为 app.js 的主文件。

连接 MySQL 数据库

app.js 文件中,我们需要使用 MySQL 模块连接到数据库。以下是完整的连接代码:

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

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

我们可以通过更改相关参数来连接到自己的 MySQL 数据库。

创建用户表

在我们能够实现用户注册和登录之前,我们需要为我们的应用程序创建一个用户表。以下是一个简单的用户表 SQL:

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

我们需要使用以下的命令将此 SQL 执行在 MySQL 数据库上:

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

这将在数据库中创建一个名为 users 的表。

实现注册

接下来,我们将创建一个 Express.js 路由来处理用户注册。以下是注册路由的完整代码:

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

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

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

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

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

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

这个路由只有在收到 POST 请求时才会触发。路由会使用 crypto 模块中的 MD5 加密算法来加密用户密码存储到数据库中。最后,路由将响应用户注册成功状态。我们可以通过以下命令将注册路由添加到应用程序中:

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

实现登录

接下来,我们将创建一个登录路由,处理用户的登录操作。以下是登录路由的完整代码:

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

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

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

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

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

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

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

此路由仅在收到 POST 请求时才会触发。它也使用 crypto 模块的 MD5 加密算法来加密用户密码以与数据库存储的密码进行比较。如果提供的电子邮件地址和密码与数据库中存储的匹配,则路由将创建一个名为 loggedin 的会话变量,并将其设置为 true。最后路由返回登录成功的状态。我们可以通过以下命令将登录路由添加到应用程序中:

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

实现用户信息查询

接下来,我们将创建一个用户信息查询路由,以显示已登录用户的详细信息。以下是用户信息查询路由中的完整代码:

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

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

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

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

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

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

此路由仅在收到 GET 请求时才会触发。它将检查登录用户的 loggedin 会话变量是否为 true。如果是,路由将查找电子邮件地址与会话变量相匹配的用户,并向用户返回其电子邮件地址和创建时间。最后,路由返回欢迎信息。我们可以通过以下命令将用户信息查询路由添加到应用程序中:

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

总结

Express.js 提供了一种简单但强大的方法来构建 Web 应用程序。结合 MySQL,可以实现用户注册、登录和信息查询的功能。本文讨论了如何使用 Express.js 和 MySQL 完成这些任务的步骤,旨在帮助开发者更好地理解应用程序的实现过程。完整的示例代码可在 GitHub 上找到。

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


猜你喜欢

  • Custom Elements:如何为自定义元素添加动画效果?

    随着 Web 技术的不断进步,自定义元素(Custom Elements)已经成为了开发 Web 应用程序的有力工具。自定义元素允许开发者创建新的 HTML 标签,并赋予其新的行为和功能。

    1 年前
  • 如何使用 Webpack 应对 fontawesome 字体库的加载问题

    在前端开发中,字体图标是一个非常常见的元素。FontAwesome 是一个非常流行的字体图标库,在实际使用中,也会遇到一些问题。这篇文章将介绍如何使用 Webpack 解决 FontAwesome 字...

    1 年前
  • PM2+nginx+node.js 实现 Node 集群负载均衡

    随着互联网应用的不断发展,高并发、高可用已经成为了一个越来越普遍的需求。而 Node.js 作为一种高性能、高并发的 web 开发语言,也越来越受到开发者的青睐。 当一个 Node.js 应用面临着大...

    1 年前
  • Mocha 测试框架中如何实现 Stubbing

    在前端开发中,测试是不可或缺的一环,而 Mocha 是一个流行的 JavaScript 测试框架。它支持多种测试样式,包括 BDD 和 TDD。但有时候,我们测试需要在某些情况下提供一个假的返回值或者...

    1 年前
  • RESTful API的松散耦合性理解

    RESTful API是现代前端应用架构的核心。它具有良好的松散耦合性,使得开发人员能够更轻松地实现前端与后端之间的协作和数据交换。 什么是RESTful API? RESTful API是一种基于R...

    1 年前
  • 使用 Web Components 构建 SPA 的好处

    Web Components 是一种用于创建可重用的自定义 HTML 元素的技术。它是一个由浏览器原生支持的标准,可以使用HTML、CSS 和 JavaScript 实现。

    1 年前
  • Headless CMS 的品牌价值和内容价值

    什么是 Headless CMS? Headless CMS 是一种新兴的内容管理系统。与传统 CMS 不同,Headless CMS 剥离了前端和后端的耦合,将前端与后端分离开来,使得内容管理系统只...

    1 年前
  • 使用 Hapi 创建 WebSocket 服务器

    最近,在 Web 开发中使用 WebSocket 已经变得越来越常见,因为它可以为许多用例提供极佳的解决方案,例如实时聊天、实时游戏状态、推送通知等等。 Hapi 是一个非常受欢迎的 Node.js ...

    1 年前
  • Sequelize 操作 MySQL 时遇到的错误及解决方案

    在前端开发中,Sequelize 是一种基于 Node.js 实现的 ORM(Object Relational Mapping)工具,它可以让我们方便地操作各种数据库,其中包括 MySQL。

    1 年前
  • ECMAScript 2018:新增静态方法 Object.entries()

    在 ECMAScript 2018 中,新增了一个静态方法 Object.entries(),该方法用于返回一个对象的可枚举属性的键值对数组。该方法可以用于对象解构,对象遍历和对象转换等场景,具有深度...

    1 年前
  • ES10 的 Object.values() 和 Object.entries() 方法使用详解

    ES10 的 Object.values() 和 Object.entries() 方法使用详解 ES10 作为 JavaScript 最新的语言标准,引入了许多新的功能和 API。

    1 年前
  • TypeScript 中 Chai 库的使用方法

    使用 TypeScript 编写前端代码时,Chai 库是一个常用的断言库,用于简化测试代码的编写。本文将介绍 TypeScript 中 Chai 库的使用方法。 安装 Chai 在项目中使用 Cha...

    1 年前
  • Kubernetes 中 Rook 的使用,解决容器存储问题

    背景 随着云原生技术的发展,容器化应用已经成为新一代应用的主流。然而,容器化应用面对的一个重要问题是如何存储数据。传统的本地存储或者网络存储等并不适应于容器化应用的需求。

    1 年前
  • Socket.io 中如何实现双向通信?

    1. 前言 在 Web 应用程序中实现实时双向通信通常需要使用 WebSocket 技术。然而,由于 WebSocket 技术并不是所有浏览器都支持,因此我们需要一个可靠的 WebSocket 协议的...

    1 年前
  • Next.js SSR 解决跨域问题的最佳实践

    随着 Web 技术的不断发展,我们的网站和 Web 应用程序被迫越来越复杂。尤其是在面对跨域问题时,前端开发人员需要不断地寻找最佳解决办法。在这篇文章中,我们将介绍如何使用 Next.js SSR(服...

    1 年前
  • MongoDB 集群负载均衡问题的解决方案

    背景 MongoDB 是一个非常流行的文档型数据库,适用于许多不同的应用场景。在一些高负载情况下,通常需要将 MongoDB 部署在多个节点上以实现横向扩展和高可用性。

    1 年前
  • ES6 中的 Symbol 类型详解

    在Javascript的新标准ES6中,Symbol类型是一个重要的新增特性。它是一种特殊的 "原始" 数据类型,可以用来作为对象属性的键(key),从而提供更好的对象属性处理和保护的功能。

    1 年前
  • Mongoose 在 Express 框架中的使用方法

    Mongoose 在 Express 框架中的使用方法 Mongoose 是一个开源的 Node.js 模块,是连接 MongoDB 数据库最好的方式之一,Mongoose 能够为 Express 应...

    1 年前
  • 30 分钟上手 Docker Compose 搭建你的 WordPress 站点

    在前端开发中,搭建 WordPress 站点是一个必要的过程,但是传统的方式需要手动安装和配置,比较耗时。而使用 Docker Compose 可以大大简化这个过程,只需要几步即可完成搭建。

    1 年前
  • ES8 新的 Array 方法:Object.entries 和 Object.values

    ES8 新的 Array 方法:Object.entries 和 Object.values 在 JavaScript 中,数组是一个强大的数据结构,它支持多种方法和操作。

    1 年前

相关推荐

    暂无文章