中间件

中间件

  • Express提供的大部分功能是通过中间件函数完成的,这些中间件函数在Node.js收到请求的时点和发送响应的时点之间执行。(中间件一般都会创建在路由之前,中间件可以在请求到达路由前做一些准备工作,比如:解析Cookie ,解析请求体、解析静态资源 )
  • 中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。
  • 中间件的定义 app.use(function(req , res , next){     //代码 });
  • 中间件,就是一个特殊的路由(或者说路由是一个特殊的中间件)。他们都是将请求地址和函数进行映射;
  • 中间将往往会过滤多种请求;比如中间件设置的请求路径是/hello,那么浏览器请求/hello/abc或请求/hello/gtr时,中间件都会收到请求

  • 中间件的路径可以省略不写,如果中间件中不写路径,则所有请求都会经过该中间件

//引入express
var express = require("express");
//创建应用对象
var app = express();

//配置静态资源
app.use(express.static("public"));

//没写路径的中间件
app.use(function (req , res , next) {
	console.log("没写路径的中间件");
	next();
});


app.use("/hello",function (req , res , next) {
	console.log("中间件执行了~~~");
	next();
});


app.get("/hello/abc",function (req , res) {
	res.send("hello abc")
});

app.get("/hello/nihao",function (req , res ) {
	res.send("hello nihao")
});



//监听端口并启动服务器
app.listen(3000 , function () {
	console.log("ok");
});

除了自定义中间件,还可以调用第三方的中间件,举例调用body-parser中间件,此中间件可以解析请求体;

使用步骤:
		1.下载安装body-parser
 			npm i body-parser --save
 		2.引入body-parser
 			var bodyParser = require("body-parser");
		3.将其设置为项目的中间件
 			app.use(bodyParser.urlencoded({ extended: true }));

例子:

//引入express
var express = require("express");
var bodyParser = require("body-parser");
//创建应用对象
var app = express();

//配置静态资源
app.use(express.static("public"));

//一般设置{ extended: false }
app.use(bodyParser.urlencoded({ extended: false }));

app.post("/hello" , function (req , res) {
	//query只能获取查询字符串中的参数
	//console.log(req.query);

	//req.body 这个属性用来获取请求报文中的请求体
	//默认情况下,请求体不会被Express所解析
	//如果希望请求体被解析,则需要引入一个中间件body-parser
	console.log(req.body.username);
	res.send("这是一个post请求");
});


//监听端口并启动服务器
app.listen(3000 , function () {
	console.log("ok");
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值