使用 Express.js 和 MongoDB 构建 Web 应用程序

前言

现在的 Web 应用程序开发中,前端和后端的分离已经成为了一种趋势。前端主要用来呈现数据和交互,后端主要用来处理数据和业务逻辑。Express.js 是一个基于 Node.js 平台的 Web 应用程序框架,它可以轻松地构建一个 RESTful API 网站或 Web 应用程序。MongoDB 是一个开源的 NoSQL 数据库,它具有高性能,高可扩展性,开发成本低等优点。本文将介绍如何使用 Express.js 和 MongoDB 构建 Web 应用程序,提供了详细的代码实现。

准备工作

在开始建设 Web 应用程序之前,我们需要安装 Express.js 和 MongoDB。

安装 Express.js 环境

在 Node.js 官网 下载 Node.js,选择对应操作系统的版本。安装好后,使用以下命令检查是否安装成功:

---- --
--- --

如果成功安装,将会输出对应的版本号。

在命令行中使用以下命令安装 Express.js:

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

安装 MongoDB 环境

在 MongoDB 官网 下载 MongoDB,选择对应操作系统的版本。安装好后,启动 MongoDB 服务。在 Windows 操作系统中,可以使用以下命令启动 MongoDB:

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

创建 Web 应用程序

创建 Express.js 应用程序

使用以下命令创建一个名为 express-mongodb-app 的 Express.js 应用程序:

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

运行以下命令切换到应用程序的目录:

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

在操作系统中运行以下命令安装所需要的依赖包:

--- -------

连接 MongoDB 数据库

在 Express.js 的 app.js 文件中,引入 mongoose 模块和创建连接:

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

这里的 'mongodb://localhost/my_database' 是 MongoDB 数据库的连接地址。 mongoose.connect() 方法将建立与数据库的连接,如果连接失败,将抛出异常。

创建数据库集合

在 Express.js 应用程序中,可以使用 mongoose.Schema 定义数据集合的结构,并使用 mongoose.model 创建数据集合。

例如,我们定义一个名为 User 的数据集合,其中包含 name 和 email 字段:

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

这里首先引入 mongoose,然后使用 mongoose.Schema 创建用户集合的结构,再使用 mongoose.model 创建用户模型,并将模型赋给 User。模型名称字符串的首字母应该是大写的,单数形式。

插入数据

使用以下代码可以向数据库中插入一条数据:

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

这里首先引入 mongoose,然后获取在前一步定义的模型。使用一个新的用户对象初始化模型,然后调用 save() 来将其保存到数据库中。

查询数据

使用以下代码可以查询 user 集合的所有数据:

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

实战

下面将详细介绍一个使用 Express.js 和 MongoDB 构建 Web 应用程序的示例代码,实现用户注册和登录的功能。

安装所需的依赖包

在项目根目录运行以下命令安装所有需要的依赖包:

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

创建用户集合

在 models/user.js 中,将定义一个名为 User 的集合:

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

这里,我们定义了 name、email、password 三个属性。

创建路由

在 routes/index.js 中,定义两个路由,分别是用户注册和用户登录:

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

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

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

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

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

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

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

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

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

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

这里引入了 User 模型,包括了对于用户注册、用户登录等操作的路由。

编写视图模板

在 views 文件夹里,新建两个 register.ejs 和 login.ejs 模板文件。它们分别用于用户注册和用户登录页。其中,注册页包括了一个表单,包括了用户名、邮箱和密码,以及验证密码的输入框。登录页包括了一个表单,包括了邮箱和密码。当登录和注册表单提交时,它们将置于 routes/index.js 中定义的路由请求。

测试

运行以下命令启动 Web 服务:

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

在浏览器上访问 http://localhost:3000/register ,填写表单中的用户名、邮箱和密码,点击提交按钮,即可完成用户注册。接着,在浏览器上访问 http://localhost:3000/login ,输入刚刚注册的邮箱和相应的密码,即可完成用户登录。登录成功后,即可看到用户名和邮箱。

总结

使用 Express.js 和 MongoDB 可以方便地创建 Web 应用程序。本文中介绍了如何连接 MongoDB 数据库,创建数据集合,插入和查询数据,并提供了一个简单示例。通过实战,我们了解了如何使用 Express.js 和 MongoDB 构建具有用户注册、用户登录功能的 Web 应用程序。希望本文能对您有所启示,让您更好地了解和使用这个强大的技术组合。

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


猜你喜欢

  • Android 无障碍辅助服务开发实践心得

    在移动互联网时代,无障碍辅助服务变得越来越重要。而在 Android 开发中,无障碍辅助服务是一项关键技术。无障碍辅助服务可以帮助用户理解应用程序中的内容,并辅助用户完成任务,而这些任务对于一些具有特...

    1 年前
  • 在 AngularJS SPA 中使用 Gulp 自动构建工具

    随着前端技术的不断发展,我们的项目越来越复杂,对开发效率、代码质量、代码组织等方面的要求也越来越高。Gulp 是一款非常好用的自动构建工具,可以解决很多开发过程中遇到的问题。

    1 年前
  • ECMAScript 2021 (ES12) 中的 Map 对象,解决同一对象作为键名时覆盖的问题

    在前端开发中,我们经常需要使用到 JavaScript 的对象。其中一种常用的 JavaScript 对象是 Map 对象,它可以存储键值对,并且可以使用任何 JavaScript 对象作为键名。

    1 年前
  • Mocha 测试框架中如何测试 Node.js 中的 cluster

    Node.js 中的 cluster 模块可以在单个线程中创建多个子进程,以充分利用多核CPU,从而提高应用程序的性能。这使得它非常适合处理高并发和CPU密集型的应用程序。

    1 年前
  • ECMAScript 2018 中的异步编程:Promise 与 async/await

    ECMAScript 2018 中的异步编程:Promise 与 async/await 在前端开发中,异步编程是非常常见的。在某些情况下,我们需要在执行某些操作之前等待另一个操作完成,这就需要异步编...

    1 年前
  • 高效编写异步代码:ECMAScript 2019 的 Promise 新特性详解

    在前端开发中,异步编程是一项必不可少的技能。而 Promise,则是异步编程中最重要的概念之一。早在 ECMAScript 6 发布之前,Promise 就已经出现在很多库和框架中,用于优化异步代码的...

    1 年前
  • ESLint:如何使用 ES6 语法?

    ESLint是一个广受欢迎的JavaScript代码检查工具,它可以帮助你在代码编写过程中检测出错误、提高代码质量和可读性。ES6是ECMAScript 2015版本的标准,提供了许多新的语言特性和功...

    1 年前
  • 解决使用 Tailwind CSS 中的黑色背景问题

    在使用 Tailwind CSS 的过程中,背景颜色的选择是一个重要的问题。对于像黑色这样的暗色背景来说,如果没有正确地设置样式,会导致文字和其他元素无法清晰显示,从而影响用户体验。

    1 年前
  • Node.js 文件上传极简实现及常见问题解决方案

    在前端开发中,文件上传是一项非常重要的功能,它可以让用户上传文件到服务器端,供其他用户查看和下载。在 Node.js 开发中,文件上传也是一项非常常见的功能。本篇文章将介绍 Node.js 文件上传的...

    1 年前
  • Kubernetes 中使用 InitContainer 解决应用程序启动问题

    Kubernetes是当前最流行的容器编排工具之一,但是在实际应用中,我们会发现很多应用程序在容器启动时,需要一些额外的操作,例如初始化系统环境、安装依赖包、启动服务等。

    1 年前
  • 使用 Cypress 测试框架时遇到的多窗口切换问题解决方法

    在进行前端测试时,Cypress 已经成为了一个备受欢迎的自动化测试框架。然而,在实际使用中,我们常常会遇到诸如多窗口切换之类的问题,这会给测试带来额外的难度。那么该如何解决 Cypress 中的多窗...

    1 年前
  • TypeScript 中类的高级用法解析

    TypeScript 是一种静态类型的 JavaScript 超集,它提供了很多优秀的特性,其中类是其中最为重要的部分之一。在本文中,我们将探讨 TypeScript 中类的高级用法,帮助读者更好地了...

    1 年前
  • ES8 中的 String padding 及其实际应用

    在 ES8 中,JS 引入了字符串填充(String padding)的新特性。这个新特性可以让我们更方便地进行字符串处理,提高字符串的可读性和可用性,同时也能够提高代码的可维护性和重用性。

    1 年前
  • Fastify 降级处理指南

    在 Web 应用程序开发过程中,我们经常需要处理请求的速度和易于维护的平衡。Fastify 是一个快速,低开销且高度可定制的 Web 框架。然而,即使 Fastify 是非常高效的,但在某些情况下还是...

    1 年前
  • MongoDB 文本搜索功能实现方法

    MongoDB 文本搜索功能实现方法 MongoDB 是一种强大的文档数据库,其在文本搜索方面也提供了一些非常实用的功能。通过 MongoDB 的文本搜索功能,我们可以轻松地实现全文搜索、自然语言搜索...

    1 年前
  • Mongoose 中使用 Map 的实现方法

    在 MongoDB 中,我们经常会使用嵌套文档来组织数据,但是这种方式在实际开发中会遇到一些困难,因为它要求我们在访问嵌套数据时使用冗长的点式语法。Mongoose 提供了 Map 类型来解决这个问题...

    1 年前
  • Enzyme 测试组件时如何模拟异步请求

    引言 在前端开发中,组件化和测试是非常重要的一环。Enzyme 是 React 专用的 JavaScript 测试工具,常用于测试组件、渲染结果等。在组件中,尤其是通过异步 API 获取数据的组件,我...

    1 年前
  • ES6 中的默认参数和剩余参数详解

    ES6 中的默认参数和剩余参数详解 在 ES5 中,我们在函数中使用默认值通常是通过逻辑运算符实现的。但是,ES6 标准引入了默认参数与剩余参数,为我们提供了更加简洁和灵活的方式来实现类似的功能。

    1 年前
  • 基于 React Native 的性能优化

    React Native 是一个让开发者可以使用 Javascript 编写原生应用的框架。它可以让我们使用一种简单、统一的方式来构建应用,不管是 iOS 还是 Android,这在开发移动应用方面是...

    1 年前
  • Jest框架:测试隔离技巧

    在日常软件开发中,测试是不可或缺的一环。随着前端技术的发展,前端测试也越来越被重视。Jest是一款广泛应用于前端单元测试的框架,其测试隔离技巧更是让测试更加高效和准确。

    1 年前

相关推荐

    暂无文章