返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js的Express框架使用上手指南
  • 171
分享到

Node.js的Express框架使用上手指南

上手框架指南 2022-06-04 17:06:04 171人浏览 独家记忆
摘要

Express介绍 npm提供了大量的第三方模块,其中不乏许多WEB框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。 Express是一个简洁、灵活的node.js Web应用开

Express介绍
npm提供了大量的第三方模块,其中不乏许多WEB框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。

Express是一个简洁、灵活的node.js Web应用开发框架, 它提供一系列强大的功能,比如:模板解析、静态文件服务、中间件、路由控制等等,并且还可以使用插件或整合其他模块来帮助你创建各种 Web和移动设备应用,是目前最流行的基于node.jsweb开发框架,并且支持Ejs、jade等多种模板,可以快速地搭建一个具有完整功能的网站。

好,下面我们就开始吧!

1. NPM安装


npm install express

2. 获取、引用


var express = require('express');
var app = express();

通过变量“app”我们就可以调用express的各种方法了,好戏刚刚开始,继续加油吧!

创建应用
认识了Express框架,我们开始创建我们的第一个express应用。

在我们的默认项目主文件app.js添加如下内容:


var express = require('express');
var app = express();
app.get('/', function (request, response) {
  response.send('Hello World!');
});

app.listen(80);

说明:在后面课程学习中,我们会统一使用80端口用于监听请求。

添加完毕之后,通过右侧栏的“测试地址”来查看浏览器内容,当看到“Hello World!”内容就表明一个简单的express应用已经创建成功了。

get请求
前面我们实现了一个简单的express应用,下面我们就开始具体讲述它的具体实现,首先我们先来学习Express的常用方法。

get方法 —— 根据请求路径来处理客户端发出的GET请求。

格式:


app.get(path,function(request, response));

path为请求的路径,第二个参数为处理请求的回调函数,有两个参数分别是request和response,代表请求信息和响应信息。

如下示例:


var express = require('express');
var app = express();

app.get('/', function(request, response) {
  response.send('Welcome to the homepage!');
});
app.get('/about', function(request, response) {
  response.send('Welcome to the about page!');
});
app.get("*", function(request, response) {
  response.send("404 error!");
});
app.listen(80);

上面示例中,指定了about页面路径、根路径和所有路径的处理方法。并且在回调函数内部,使用Http回应的send方法,表示向浏览器发送一个字符串

参照以上代码,试试自己设定一个get请求路径,然后浏览器访问该地址是否可以请求成功。

Middleware<中间件>
1.什么是中间件?

中间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。 它最大的特点就是,一个中间件处理完,可以把相应数据再传递给下一个中间件。

2.一个不进行任何操作、只传递request对象的中间件,大概是这样:


function Middleware(request, response, next) {
  next();
}

上面代码的next为中间件的回调函数。如果它带有参数,则代表抛出一个错误,参数为错误文本。


function Middleware(request, response, next) {
  next('出错了!');
}

抛出错误以后,后面的中间件将不再执行,直到发现一个错误处理函数为止。如果没有调用next方法,后面注册的函数也是不会执行的。

all函数的基本用法
和get函数不同app.all()函数可以匹配所有的HTTP动词,也就是说它可以过滤所有路径的请求,如果使用all函数定义中间件,那么就相当于所有请求都必须先通过此该中间件。

格式:


app.all(path,function(request, response));

如下所示,我们使用all函数在请求之前设置响应头属性。


var express = require("express");
var app = express();

app.all("*", function(request, response, next) {
  response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }); //设置响应头属性值
next();
});

app.get("/", function(request, response) {
  response.end("欢迎来到首页!");
});

app.get("/about", function(request, response) {
  response.end("欢迎来到about页面!");
});

app.get("*", function(request, response) {
  response.end("404 - 未找到!");
});

app.listen(80);

上面代码参数中的“*”表示对所有路径有效,这个方法在给特定前缀路径或者任意路径上处理时会特别有用,不管我们请求任何路径都会事先经过all函数。

如果所示,如果我们跳过all函数又会怎么样呢,自己动手试一试?

use基本用法1
use是express调用中间件的方法,它返回一个函数。

格式:


app.use([path], function(request, response, next){});

//可选参数path默认为"/"。

1. 使用中间件


app.use(express.static(path.join(__dirname, '/')));

如上呢,我们就使用use函数调用express中间件设定了静态文件目录的访问路径(这里假设为根路径)。

2. 如何连续调用两个中间件呢,如下示例:


var express = require('express');
var app = express();

app.use(function(request, response, next){
 console.log("method:"+request.method+" ==== "+"url:"+request.url);
 next();
});

app.use(function(request, response){
 response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
 response.end('示例:连续调用两个中间件');
});

app.listen(80);

回调函数的next参数,表示接受其他中间件的调用,函数体中的next(),表示将请求数据传递给下一个中间件。

上面代码先调用第一个中间件,在控制台输出一行信息,然后通过next(),调用第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以req对象就不再向后传递了。

use基本用法2
use方法不仅可以调用中间件,还可以根据请求的网址,返回不同的网页内容,如下示例:


var express = require("express");
var app = express();

app.use(function(request, response, next) {
  if(request.url == "/") {
    response.send("Welcome to the homepage!");
  }else {
    next();
  }
});

app.use(function(request, response, next) {
  if(request.url == "/about") {
    response.send("Welcome to the about page!");
  }else {
    next();
  }
});
app.use(function(request, response) {
  response.send("404 error!");
});
app.listen(80);

上面代码通过request.url属性,判断请求的网址,从而返回不同的内容。

回调函数
Express回调函数有两个参数,分别是request(简称req)和response(简称res),request代表客户端发来的HTTP请求,request代表发向客户端的HTTP回应,这两个参数都是对象。示例如下:


function(req, res) {
});

在后面的学习中,我们会经常和它打交道,牢牢记住它的格式吧!

获取主机名、路径名
今天我们就先来学习如何使用req对象来处理客户端发来的HTTP请求。

req.host返回请求头里取的主机名(不包含端口号)。

req.path返回请求的URL的路径名。

如下示例:


var express = require('express');
var app = express();

app.get("*", function(req, res) {
  console.log(req.path);
  res.send("req.host获取主机名,req.path获取请求路径名!");
});

app.listen(80);

试一试在浏览器中输入任意一个请求路径,通过req查看主机名或请求路径。

query基本用法
query是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}。


var express = require('express');
var app = express();

app.get("*", function(req, res) {
  console.log(req.query.参数名);
  res.send("测试query属性!");
});

app.listen(80);

通过req.query获取get请求路径的对象参数值。

格式:req.query.参数名;请求路径如下示例:

例1: /search?n=Lenka


req.query.n // "Lenka"

例2: /shoes?order=desc&shoe[color]=blue&shoe[type]=converse


req.query.order // "desc"

req.query.shoe.color // "blue"

req.query.shoe.type // "converse"

试一试get请求一个带参数路径,使用“req.query.参数名”方法获取请求参数值。

param基本用法
和属性query一样,通过req.param我们也可以获取被解析过的请求参数对象的值。

格式:req.param("参数名");请求路径如下示例:

例1: 获取请求根路径的参数值,如/?n=Lenka,方法如下:


var express = require('express');
var app = express();

app.get("/", function(req, res) {

  console.log(req.param("n")); //Lenka

  res.send("使用req.param属性获取请求根路径的参数对象值!");

});
app.listen(80);

例2:我们也可以获取具有相应路由规则的请求对象,假设路由规则为 /user/:name/,请求路径/user/mike,如下:


app.get("/user/:name/", function(req, res) {
  console.log(req.param("name")); //mike
  res.send("使用req.param属性获取具有路由规则的参数对象值!");
});

PS:所谓“路由”,就是指为不同的访问路径,指定不同的处理方法。

看了上面的示例,试一试使用req.param属性解析一个请求路径对象,并获取请求参数值。

params基本用法
和param相似,但params是一个可以解析包含着有复杂命名路由规则的请求对象的属性。

格式:req.params.参数名;

例1. 如上课时请求根路径的例子,我们就可以这样获取,如下:


var express = require('express');
var app = express();

app.get("/user/:name/", function(req, res) {
  console.log(req.params.name); //mike
  res.send("使用req.params属性获取具有路由规则的参数对象值!");
});

app.listen(80);

查看运行结果,和param属性功能是一样的,同样获取name参数值。

例2:当然我们也可以请求复杂的路由规则,如/user/:name/:id,假设请求地址为:/user/mike/123,如下:


app.get("/user/:name/:id", function(req, res) {
  console.log(req.params.id); //"123"
  res.send("使用req.params属性复杂路由规则的参数对象值!");
});

对于请求地址具有路由规则的路径来说,属性params比param属性是不是又强大了那么一点点呢!

send基本用法
send()方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据。格式如下: res.send([body|status], [body]);

1.当参数为一个String时,Content-Type默认设置为"text/html"。


res.send('Hello World'); //Hello World

2.当参数为Array或Object时,Express会返回一个JSON


res.send({ user: 'tobi' }); //{"user":"tobi"}
res.send([1,2,3]); //[1,2,3]

3.当参数为一个Number时,并且没有上面提到的任何一条在响应体里,Express会帮你设置一个响应体,比如:200会返回字符"OK"。


res.send(200); // OK
res.send(404); // Not Found
res.send(500); // Internal Server Error

send方法在输出响应时会自动进行一些设置,比如HEAD信息、HTTP缓存支持等等。

--结束END--

本文标题: Node.js的Express框架使用上手指南

本文链接: https://lsjlt.com/news/13054.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Node.js的Express框架使用上手指南
    Express介绍 npm提供了大量的第三方模块,其中不乏许多Web框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。 Express是一个简洁、灵活的node.js Web应用开...
    99+
    2022-06-04
    上手 框架 指南
  • Node.js的Koa框架上手及MySQL操作指南
    由 Express 原班人马打造的 koa,致力于成为一个更小、更健壮、更富有表现力的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并...
    99+
    2022-06-04
    上手 操作指南 框架
  • Node.js的Express框架怎么使用
    本文小编为大家详细介绍“Node.js的Express框架怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js的Express框架怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目前比较流...
    99+
    2023-07-04
  • Node.js 中如何使用Express框架
    这期内容当中小编将会给大家带来有关Node.js 中如何使用Express框架,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Node.js Express 框架Expre...
    99+
    2024-04-02
  • Node.js中Express框架怎么用
    本篇内容主要讲解“Node.js中Express框架怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中Express框架怎么用”吧!很多语言都有一些框架,这些框架可以帮助我们更...
    99+
    2023-06-17
  • Node.js中Express框架的使用教程详解
    目录Express简介Express生成器1. 什么是Express生成器2. 安装Express生成器创建Express项目安装项目依赖运行Express项目Express目录结构...
    99+
    2024-04-02
  • Ajax 的初步实现(使用vscode+node.js+express框架)
    需求: 点击按钮 向服务端发送一个请求 然后将服务端返回的响应体结果在一个div中呈现出来 同时页面不刷新 一、 服务端的前期准备 安装node.js https://nodejs....
    99+
    2024-04-02
  • 浅谈Node.js轻量级Web框架Express4.x使用指南
    Express是一个轻量级的Web框架,简单、灵活 也是目前最流行的基于Nodejs的Web框架 通过它我们可以快速搭建功能完整的网站 (express 英文意思:特快列车) Express现在是4...
    99+
    2022-06-04
    浅谈 使用指南 框架
  • Node.js 中 Chai 测试框架的入门指南
    简介 Chai 是一个简单、灵活且广泛用于 Node.js 的断言库。它可以帮助您轻松地测试应用程序,确保它们按照预期运行。Chai 提供了丰富的断言方法,可以帮助您检查变量的值、对象的状态、函数的行为等。同时,Chai 还支持多种语法风...
    99+
    2024-02-12
    : Node.js 测试框架 Chai
  • Node.js中Express框架怎么使用axios同步请求
    这篇文章主要介绍了Node.js中Express框架怎么使用axios同步请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js中Express框架怎么使用axios同步请求文章都会有所收获,下面我们...
    99+
    2023-07-06
  • node+express+ejs制作简单页面上手指南
    1.建立工程文件夹my_ejs. 2.首先利用npm install express和npm install ejs 下载这两个家伙.至于要不要设置成全局的,看习惯,我习惯性的下载到本项目中的文件夹中my_...
    99+
    2022-06-04
    上手 页面 简单
  • PHP 框架安全指南:如何使用 OWASP Top 10 指南?
    遵循 owasp top 10 指南增强 php 框架应用程序安全性:防御注入攻击:使用预处理语句、转义输入并执行白名单检查。加强身份验证:应用强密码哈希、启用两因素认证和实施会话管理最...
    99+
    2024-05-23
    安全 php mysql laravel 敏感数据 lsp
  • node.js express mvc轻量级框架的示例分析
    这篇文章主要介绍了node.js express mvc轻量级框架的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。其实逻辑没什么可以...
    99+
    2024-04-02
  • sails框架的学习指南
    上周通过搭建CMS系统接触到了sails框架,知道一些ORM的概念。这周开始深入后台数据交互,发现twenty框架的数据结构在sails上又设计了一番(比如node、category),不得不说师哥就是厉害...
    99+
    2022-06-04
    学习指南 框架 sails
  • PHP中的Symfony框架指南
    PHP是一门广为使用的编程语言,它具有广泛的应用领域和强大的功能。而Symfony框架则是PHP中的一种流行的开源框架,可让开发者更轻松地构建Web应用程序。本篇文章将向您介绍Symfony框架的一些基本概念和技术,以帮助您更好地开发Web...
    99+
    2023-05-22
    指南 PHP Symfony框架
  • PHP中的CI框架指南
    随着互联网的发展和不断地融入人们的生活,网络应用的开发变得越来越重要。PHP作为一种众所周知的编程语言,已经成为了开发互联网应用程序的首选语言之一。而开发人员们可以使用众多的PHP框架来简化开发过程,其中最受欢迎的之一是CodeIgnite...
    99+
    2023-05-22
    指南 PHP CI框架
  • PHP中的CodeIgniter框架指南
    随着Web应用程序的发展,开发者们希望能够更加高效、便捷地构建和维护这些应用。在这一需求下,PHP中的框架成为了一种流行的解决方案。在众多PHP框架中,CodeIgniter是一款轻量级的开源框架,被广泛地应用于Web应用程序的开发。本文将...
    99+
    2023-05-21
    PHP CodeIgniter 框架指南
  • PHP中的ThinkPHP框架指南
    ThinkPHP是一款著名的PHP开源框架,它以高效、简洁、易用为特点,能够快速地构建大型的Web应用程序。本文将为您介绍ThinkPHP框架的使用方法和注意事项。一、ThinkPHP框架的安装1.下载ThinkPHP框架可以在官网 (ht...
    99+
    2023-05-21
    指南 PHP ThinkPHP框架
  • PHP中的CakePHP框架指南
    CakePHP框架是一个基于开源软件模型-视图-控制器(MVC)的Web应用程序框架。它是一个使用PHP编写的框架,可以帮助开发人员编写高效且易于维护的Web应用程序,而无需重复编写重复的代码。本文将介绍CakePHP框架的主要特点和用法,...
    99+
    2023-05-21
    指南 PHP CakePHP框架
  • PHP中的Slim框架指南
    PHP是一种使用广泛的后端编程语言,它拥有众多优秀的开发框架,能够简化开发流程、提升代码质量和效率。在诸多框架中,Slim框架是一个轻量级、灵活、高效、易用的PHP框架,广泛被用于开发Web应用程序。它具有精简的代码、支持RESTful风格...
    99+
    2023-05-20
    指南 PHP Slim框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作