如何使用 Express.js 构建网站

阅读时长 5 分钟读完

介绍

Express.js 是目前最流行的 Node.js Web 应用开发框架之一,适用于快速构建高度可扩展的 Web 应用程序。本文将介绍如何使用 Express.js 构建一个简单的网站。

前置知识

在学习 Express.js 之前,你需要拥有基本的 Node.js 知识和了解 HTTP 协议。

安装和设置 Express.js

首先,我们需要安装和设置 Express.js。打开终端并运行以下命令:

然后,在您想要创建应用程序的目录中运行以下命令:

这将创建一个名为“myapp”的基本 Express 应用程序,其中包括一些初始文件和目录。您需要使用 cd 命令导航到 myapp 目录,然后安装依赖项:

现在,您可以运行应用程序并在浏览器中访问它:

默认情况下,Express 应用程序运行在端口 3000 上。打开浏览器并访问 http://localhost:3000,您应该看到“Welcome to Express”页面。

创建路由

在 Express.js 中,路由负责处理客户端请求。我们需要创建一些路由来处理我们应用程序中的不同请求。

在 myapp 目录中,打开 app.js 文件。这是我们主要的应用程序文件,其中包含路由和其他配置。

我们可以通过以下方式创建路由:

这里,我们创建了一个名为“hello”的 GET 路由,当客户端请求路径为 /hello 时,该路由将发送“Hello,World!”响应。

我们可以根据需要创建多个路由,使用 app.post()、app.put()、app.delete() 等指定请求类型。

使用模板引擎

在现代 Web 开发中,大多数网站都使用模板引擎生成 HTML。Express.js 支持多个模板引擎,包括 EJS、Pug、Handlebars 等。

在本例中,我们将使用 EJS 模板引擎。首先,我们需要在 myapp 目录中安装 EJS:

然后,我们需要在 app.js 中设置模板引擎。我们可以使用以下方法设置 EJS 作为默认模板引擎:

这里,我们将模板文件存储在 myapp/views 目录中,并将 EJS 设置为默认模板引擎。

现在,我们可以创建一个 EJS 模板(例如 myapp/views/index.ejs),然后在路由中使用它:

这里,我们创建了一个名为“index”的路由,它将呈现 myapp/views/index.ejs 模板,并将标题设置为“Express”。

处理 POST 请求

通过 HTTP POST 请求发送数据是在 Web 开发中最常见的操作之一。我们需要使用 Express.js 处理 POST 请求并从中提取数据。

在我们开始处理 POST 请求之前,我们需要安装 body-parser 中间件:

然后,在 app.js 文件中,将以下代码添加到顶部:

现在,我们可以创建一个 POST 路由,用于处理数据并发送响应。例如:

这里,我们创建了一个名为“submit”的 POST 路由。它将从请求正文中提取 username 参数,然后发送“Hello,{username}!”响应。

结论

Express.js 是 Node.js Web 应用开发的一个出色框架,可以帮助您快速构建高度可扩展的 Web 应用程序。在本文中,我们介绍了如何使用 Express.js 构建一个简单的网站,并创建路由、使用模板引擎和处理 POST 请求。通过细心的学习和实践,您可以使用 Express.js 构建更复杂的 Web 应用程序。

示例代码

下面是完整的示例代码:

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

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

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/673729fb317fbffedf088eeb

纠错
反馈