Node.js Express 框架教程 – 10 分钟学会

在本教程中,我们将研究 Express 框架。该框架的构建方式使其可以充当最小且灵活的 Node.js Web 应用程序框架,为构建单页、多页和混合 Web 应用程序提供了一组强大的功能。

什么是 Express.js?

Express.js 是一个 Node js Web 应用程序服务器框架,专为构建单页、多页和混合 Web 应用程序而设计。

它已成为 node.js 的标准服务器框架。Express 是 MEAN 堆栈的后端部分。

MEAN 是一个免费且开源的 JavaScript 用于构建动态网站和 Web 应用程序的软件堆栈,具有以下组件;

1) MongoDB – 标准 NoSQL 数据库

2) Express.js – 默认的 Web 应用程序框架

3)Angular.js ——由数百家创建、维护和提供物联网(IoT)全球开放标准的公司所组成的 Java用于 Web 应用程序的脚本 MVC 框架

4) Node.js – 用于可扩展服务器端和网络应用程序的框架。

Express.js 框架使得开发应用程序变得非常容易,该应用程序可用于处理多种类型的请求,如 GET、PUT、POST 和 DELETE 请求。

安装和使用 Express

Express 通过 Node 包管理器进行安装。这可以通过在命令行中执行以下行来完成

npm 安装快递

上述命令请求 Node 包管理器下载所需的 express 模块并相应地安装它们。

让我们使用新安装的 Express 框架并创建一个简单的“Hello World”应用程序。

我们的应用程序将创建一个简单的服务器模块,它将监听端口号 3000。在我们的示例中,如果通过浏览器在此端口号上发出请求,则服务器应用程序将向客户端发送“Hello World”响应。

安装和使用 Express

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

代码说明:

  1. 在我们的第一行代码中,我们使用 require 函数来包含“express 模块”。
  2. 在我们开始使用 express 模块之前,我们需要创建它的一个对象。
  3. 这里我们创建一个回调函数。每当有人浏览我们的 Web 应用程序的根目录时,都会调用此函数 http://localhost:3000 。回调函数将用于将字符串“Hello World”发送到网页。
  4. 在回调函数中,我们将字符串“Hello World”发送回客户端。'res' 参数用于将内容发送回网页。此 'res' 参数是由 'request' 模块提供的,用于将内容发送回网页。
  5. 然后我们使用监听函数让我们的服务器应用程序监听端口 3000 上的客户端请求。您可以在此处指定任何可用端口。

如果命令成功执行,则在浏览器中运行代码时将显示以下输出。

输出:

Express.js

从输出来看,

  • 可以清楚的看到,我们如果浏览到localhost 3000端口的URL,就会看到页面上显示字符串‘Hello World’。
  • 因为在我们的代码中我们特别提到服务器监听端口号 3000,所以我们在浏览此 URL 时能够看到输出。

什么是路线?

路由决定应用程序响应对特定端点的客户端请求的方式。

例如,客户端可以对各种 URL 发出 GET、POST、PUT 或 DELETE http 请求,如下所示;

http://localhost:3000/Books
http://localhost:3000/Students

在上面的示例中,

  • 如果对第一个 URL 发出 GET 请求,那么响应理想情况下应该是书籍列表。
  • 如果对第二个 URL 发出 GET 请求,那么响应理想情况下应该是学生列表。
  • 因此,根据访问的 URL,将调用 Web 服务器上的不同功能,并相应地将响应发送到客户端。这就是路由的概念。

每个路由可以有一个或多个处理函数,当路由匹配时执行。

路线的一般语法如下所示

app.METHOD(PATH, HANDLER)

其中,

1)app 是 express 模块的一个实例

2)METHOD 是 HTTP 请求方法(GET、POST、PUT 或 DELETE)

3)PATH 是服务器上的路径。

4)HANDLER是路由匹配的时候执行的函数。

让我们看一个如何在 express 中实现路由的示例。我们的示例将创建 3 条路由,如下所示

  1. /Node 路由,当访问此路由时,将显示字符串“Tutorial on Node”
  2. /Angular 路由,当访问此路由时,将显示字符串“Tutorial on Angular”
  3. 默认路由 / 将显示字符串“欢迎来到 Guru99 教程”。

我们的基本代码将与前面的示例保持一致。下面的代码片段是一个附加代码,用于展示如何实现路由。

Node.js 中的路由

var express = require('express');
var app = express();
app.route('/Node').get(function(req,res)
{
    res.send("Tutorial on Node");
});
app.route('/Angular').get(function(req,res)
{
    res.send("Tutorial on Angular");
});
app.get('/',function(req,res){
    res.send('Welcome to Guru99 Tutorials');
}));

代码说明:

  1. 这里我们定义一个路由,如果 URL http://localhost:3000/Node 在浏览器中被选中。我们在路由中附加了一个回调函数,当我们浏览到 Node URL 时,该函数将被调用。该函数有 2 个参数。
  • 我们将使用的主要参数是“res”参数,它可用于将信息发送回客户端。
  • 'req' 参数包含有关所发出请求的信息。有时,附加参数可能会作为所发出请求的一部分发送,因此可以使用 'req' 参数来查找所发送的附加参数。
  1. 如果选择了 Node 路由,我们将使用发送函数将字符串“Tutorial on Node”发送回客户端。
  2. 这里我们定义一个路由,如果 URL http://localhost:3000/Angular 在浏览器中被选中。我们在路由中附加了一个回调函数,当我们浏览到 Angular URL 时,该函数将被调用。
  3. 如果选择了 Angular 路由,我们将使用发送函数将字符串“Tutorial on Angular”发送回客户端。
  4. 这是浏览应用程序路由时选择的默认路由 - http://localhost:3000。当选择默认路线时,将向客户端发送消息“欢迎来到Guru99教程”。

如果命令成功执行,则在浏览器中运行代码时将显示以下输出。

输出:

Node.js 中的路由

从输出来看,

  • 可以清楚的看到,我们如果浏览到localhost 3000端口的URL,将会看到页面上显示字符串‘Welcome to Guru99 Tutorials’。
  • 因为在我们的代码中,我们已经提到我们的默认 URL 将显示此消息。

Node.js 中的路由

从输出来看,

  • 您可以看到,如果 URL 已更改为 /Node,则会选择相应的 Node 路由并显示字符串“Tutorial On Node”。

Node.js 中的路由

从输出来看,

  • 您可以看到,如果 URL 已更改为 /Angular,则会选择相应的 Node 路由并显示字符串“Tutorial On Angular”。

使用 express.js 的示例 Web 服务器

从上面的示例中,我们已经了解了如何根据路由决定显示哪些输出。这种路由是大多数现代 Web 应用程序所使用的。Web 服务器的另一部分是关于在 Node js 中使用模板。

在快速创建即时 Node 应用程序时,一种简单快捷的方法是使用应用程序模板。市场上有许多可用于制作模板的框架。在我们的例子中,我们将以 jade 框架为例进行模板制作。

Jade 通过 Node 包管理器安装。可以通过在命令行中执行以下行来完成

npm 安装 jade

上述命令请求 Node 包管理器下载所需的 jade 模块并相应地安装它们。

注意: 在最新版本的 Node 中,jade 已被弃用。请改用 pug。

让我们使用新安装的 jade 框架并创建一些基本模板。

步骤1) 第一步是创建一个 jade 模板。创建一个名为 index.jade 的文件并插入以下代码。确保在“views”文件夹中创建该文件

使用 Express.js 的示例 Web 服务器

  1. 这里我们指定当调用此模板时,页面的标题将更改为传递的任何值。
  2. 我们还指定标题标签中的文本将被替换为在 jade 模板中传递的任何内容。

使用 Express.js 的示例 Web 服务器

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Guru99',message:'Welcome'})
});
var server=app.listen(3000,function() {});

代码说明:

  1. 应用程序中要指定的第一项是用于呈现模板的“视图引擎”。由于我们将使用 jade 来呈现模板,因此我们相应地指定了它。
  2. render 函数用于渲染网页。在我们的示例中,我们渲染的是之前创建的模板 (index.jade)。
  3. 我们分别将“Guru99”和“Welcome”的值传递给参数“title”和“message”。这些值将被 index.jade 模板中声明的“title”和“message”参数替换。

如果命令成功执行,则在浏览器中运行代码时将显示以下输出。

输出:

使用 Express.js 的示例 Web 服务器

从输出来看,

  • 我们可以看到页面的标题设置为“Guru99”,页面的页眉设置为“欢迎”。
  • 这是因为我们的 node js 应用程序中调用了 jade 模板。

总结

  • express 框架是用于开发 Node js 应用程序的最常见框架。express 框架建立在 node.js 框架之上,有助于快速开发基于服务器的应用程序。
  • 路由用于根据所发出的请求将用户转移到 Web 应用程序的不同部分。每个路由的响应可以根据需要向用户显示的内容而变化。
  • 模板可用于高效地注入内容。Jade 是 Node.js 应用程序中最流行的模板引擎之一。

每日Guru99新闻简报

通过立即获取最新、最重要的人工智能新闻报道来开始您的一天。