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”响应。
var express=require('express'); var app=express(); app.get('/',function(req,res) { res.send('Hello World!'); }); var server=app.listen(3000,function() {});
代码说明:
- 在我们的第一行代码中,我们使用 require 函数来包含“express 模块”。
- 在我们开始使用 express 模块之前,我们需要创建它的一个对象。
- 这里我们创建一个回调函数。每当有人浏览我们的 Web 应用程序的根目录时,都会调用此函数 http://localhost:3000 。回调函数将用于将字符串“Hello World”发送到网页。
- 在回调函数中,我们将字符串“Hello World”发送回客户端。'res' 参数用于将内容发送回网页。此 'res' 参数是由 'request' 模块提供的,用于将内容发送回网页。
- 然后我们使用监听函数让我们的服务器应用程序监听端口 3000 上的客户端请求。您可以在此处指定任何可用端口。
如果命令成功执行,则在浏览器中运行代码时将显示以下输出。
输出:
从输出来看,
- 可以清楚的看到,我们如果浏览到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 条路由,如下所示
- /Node 路由,当访问此路由时,将显示字符串“Tutorial on Node”
- /Angular 路由,当访问此路由时,将显示字符串“Tutorial on Angular”
- 默认路由 / 将显示字符串“欢迎来到 Guru99 教程”。
我们的基本代码将与前面的示例保持一致。下面的代码片段是一个附加代码,用于展示如何实现路由。
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'); }));
代码说明:
- 这里我们定义一个路由,如果 URL http://localhost:3000/Node 在浏览器中被选中。我们在路由中附加了一个回调函数,当我们浏览到 Node URL 时,该函数将被调用。该函数有 2 个参数。
- 我们将使用的主要参数是“res”参数,它可用于将信息发送回客户端。
- 'req' 参数包含有关所发出请求的信息。有时,附加参数可能会作为所发出请求的一部分发送,因此可以使用 'req' 参数来查找所发送的附加参数。
- 如果选择了 Node 路由,我们将使用发送函数将字符串“Tutorial on Node”发送回客户端。
- 这里我们定义一个路由,如果 URL http://localhost:3000/Angular 在浏览器中被选中。我们在路由中附加了一个回调函数,当我们浏览到 Angular URL 时,该函数将被调用。
- 如果选择了 Angular 路由,我们将使用发送函数将字符串“Tutorial on Angular”发送回客户端。
- 这是浏览应用程序路由时选择的默认路由 - http://localhost:3000。当选择默认路线时,将向客户端发送消息“欢迎来到Guru99教程”。
如果命令成功执行,则在浏览器中运行代码时将显示以下输出。
输出:
从输出来看,
- 可以清楚的看到,我们如果浏览到localhost 3000端口的URL,将会看到页面上显示字符串‘Welcome to Guru99 Tutorials’。
- 因为在我们的代码中,我们已经提到我们的默认 URL 将显示此消息。
从输出来看,
- 您可以看到,如果 URL 已更改为 /Node,则会选择相应的 Node 路由并显示字符串“Tutorial On Node”。
从输出来看,
- 您可以看到,如果 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”文件夹中创建该文件
- 这里我们指定当调用此模板时,页面的标题将更改为传递的任何值。
- 我们还指定标题标签中的文本将被替换为在 jade 模板中传递的任何内容。
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() {});
代码说明:
- 应用程序中要指定的第一项是用于呈现模板的“视图引擎”。由于我们将使用 jade 来呈现模板,因此我们相应地指定了它。
- render 函数用于渲染网页。在我们的示例中,我们渲染的是之前创建的模板 (index.jade)。
- 我们分别将“Guru99”和“Welcome”的值传递给参数“title”和“message”。这些值将被 index.jade 模板中声明的“title”和“message”参数替换。
如果命令成功执行,则在浏览器中运行代码时将显示以下输出。
输出:
从输出来看,
- 我们可以看到页面的标题设置为“Guru99”,页面的页眉设置为“欢迎”。
- 这是因为我们的 node js 应用程序中调用了 jade 模板。
总结
- express 框架是用于开发 Node js 应用程序的最常见框架。express 框架建立在 node.js 框架之上,有助于快速开发基于服务器的应用程序。
- 路由用于根据所发出的请求将用户转移到 Web 应用程序的不同部分。每个路由的响应可以根据需要向用户显示的内容而变化。
- 模板可用于高效地注入内容。Jade 是 Node.js 应用程序中最流行的模板引擎之一。