在现代 Web 应用开发中,使用 Express.js 和 MongoDB 构建 Web 应用已经成为了一种趋势。Express.js 是一个快速、轻量级、灵活且容易上手的 Node.js Web 框架,而 MongoDB 是一个开源、跨平台的文档型 NoSQL 数据库。
在本文中,我们将会介绍如何使用 Express.js 和 MongoDB 构建 Web 应用,并提供详细的代码和指导。我们将会涵盖以下主题:
- 安装和配置
- 路由和控制器
- 模板和视图
- 数据库和模型
安装和配置
在开始之前,我们需要安装和配置 Express.js 和 MongoDB。首先,确保你已经安装了 Node.js 和 MongoDB。
接下来,创建一个新的 Node.js 项目,并在项目目录中运行以下命令:
npm install --save express mongodb
这将会安装 Express.js 和 MongoDB 包,并将它们添加到项目依赖项中。接下来,在你的项目根目录中创建一个名为 app.js
的文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ----------- - ------------------------------- ----- ---------- - ----------------------- ----- ---- - ----- ------------------------------- --------- ---- ---- --------------------------- ------------------------------------------------ ----- ------- -- - -- ----- ------ ------------------- ---------------------- ------------ -- ----------- ----- -- - ------------------- ---------------- -- -- ---------------------- -- ---- ----------- ---
该代码将会创建一个 Express.js 应用程序实例,并连接到你的 MongoDB 数据库。它还为应用程序设置了一个监听器,并使用 body-parser
中间件来解析请求正文。请确保在代码中替换数据库名称和端口号。
路由和控制器
在 Express.js 中,路由是指将 HTTP 请求发送到正确的控制器或函数的过程。控制器负责处理请求并确定响应,例如,将请求发送到正确的模板或返回 JSON 数据。
要添加路由,可以将以下代码添加到 app.js
中:
app.get('/', (req, res) => res.send('Hello World!'));
该代码会在根路径下创建一个 GET 路径(“/”),并返回 “Hello World!” 响应。接下来,我们将创建一个控制器来处理更多的路由。
创建一个名为 usersController.js
的文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ----------------- --------------- ----- ---- -- - -- -------- ----- ---- ------- -------- -- ------ -------- -- ---- ----- --- ------------------ ----- ---- -- - ----- -- - -------------- -- -------- ---- -- -- ---- ------- -------- -- ------ -------- -- ---- ------ --- ---------------- ----- ---- -- - ----- ---- - --------- -- --- --- ---- -- ------- -------- -- ------ -------- -- ---- ------ --- ------------------ ----- ---- -- - ----- -- - -------------- ----- ---- - --------- -- ------ ---- -- -- -- ------- -------- -- ------ -------- -- ---- ------ --- --------------------- ----- ---- -- - ----- -- - -------------- -- ------ ---- -- -- ---- ------- -------- -- ------ -------- -- ---- ------ --- -------------- - -------
该代码将创建一个 usersController
控制器和几个路由来处理不同的 HTTP 请求。 要将其添加到 app.js
中,请使用以下代码:
const usersController = require('./usersController'); app.use('/users', usersController);
现在,可以访问 http://localhost:3000/users
来调用路由,并处理 HTTP 请求了。
模板和视图
在 Express.js 中,模板和视图是创建 Web 应用的重要组成部分。
首先,我们需要安装并配置 ejs
模板引擎:
npm install --save ejs
然后,将以下代码添加到 app.js
:
app.set('views', __dirname + '/views'); app.set('view engine', 'ejs');
该代码将会告诉 Express.js 将模板文件存储在 /views
目录中,并使用 ejs
模板引擎呈现它们。
在 /views
目录中创建名为 index.ejs
的文件,并添加以下代码:
-- -------------------- ---- ------- --------- ----- ------ ------ --------- ----------- ------- ------ ----------- -- -- -------- ------- -- - ---- -- -- ---------- --- ---- ------------ ------- -------
现在,在控制器中添加以下代码:
router.get('/', (req, res) => { res.render('index'); });
这将会呈现 index.ejs
模板文件,并返回“Welcome to My App”响应。
数据库和模型
最后,我们需要将 MongoDB 集成到我们的应用程序中,并创建一个模型来管理数据。
在 app.js
中,添加以下代码来创建一个 users
集合:
const db = client.db('myapp'); db.createCollection('users', err => { if (err) return console.error(err); console.log('Users collection created'); });
然后,创建一个名为 user.js
的文件,并添加以下代码:
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- ---- - ------ ------------- - ------------------------------------------------ ----- ------- -- - ----- -- - ------------------- ----- ---------- - ----------------------- --------------------------------- ----- -- - --------------- --- --- - ------ ---------- --------- - ------------------------------------------------ ----- ------- -- - ----- -- - ------------------- ----- ---------- - ----------------------- -------------------------- ----- ------- -- - ------------------------ --- --- - ------ ---------- ----- --------- - ------------------------------------------------ ----- ------- -- - ----- -- - ------------------- ----- ---------- - ----------------------- ---------------------------- - ---- --- ------------ -- - ----- ---- -- - --------------- ----- -- ----- ------- -- - ----------------------- - -- --- - ------ ---------- --------- - ------------------------------------------------ ----- ------- -- - ----- -- - ------------------- ----- ---------- - ----------------------- ----------------------------- ---- --- ------------ -- ----- ------- -- - ----------------------- --- --- - - -------------- - -----
该代码定义了一个 User
类,并提供了一些方法来管理 MongoDB 中的 users
集合。
现在,在控制器中,可以使用以下代码来调用模型:
-- -------------------- ---- ------- ----- ---- - ------------------ --------------- ----- ---- -- - ------------- -- - ------------------- - ------ ---- --- --- --- ---------------- ----- ---- -- - ----- ---- - --------- --------------- ------- -- - ------------------ --- --- ------------------ ----- ---- -- - ----- -- - -------------- ----- ---- - --------- --------------- ----- ----------- -- - ---------------------- --- --- --------------------- ----- ---- -- - ----- -- - -------------- --------------- ----------- -- - ---------------------- --- ---
这将会调用 User
类中的方法,从 MongoDB 进行读取或写入,并回传相应的结果。
结论
至此,我们已经涵盖了使用 Express.js 和 MongoDB 构建 Web 应用的全过程。我们介绍了如何安装和配置 Express.js 和 MongoDB,如何使用路由和控制器处理 HTTP 请求,如何使用模板和视图渲染app主
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6733c92b0bc820c5824465bd