文章目录
1 express框架
express框架是基于node.js的web应用开发框架。
1.1 express特点
- 提供了方便简洁的路由定义方式。
- 对夺取HTTP请求参数进行了简化处理。
- 对模板引擎支持程度高,方便渲染动态HTML动画。
- 提供了中间件机制有效控制HTTP请求。
- 拥有大量第三方中间件对功能进行扩展。
//引入express框架 返回值其实是一个方法
//再创建服务器就不需要再引用http模块的createHttp方法了。
const express = require('express');
//创建网站服务器
const app = express();
app.get('/',(req,res)=>{
/*
send()响应客户端
1、res.send()方法内部会检测响应内容的类型
2、res.send()方法会自动设置http状态码
3、res.send()方法会自动设置响应的内容类型及编码
*/
res.send('hello express world');
})
app.get('/list',(req,res)=>{
res.send({
name:'张三',age:20});
});
//监听端口
app.listen(3000,()=>{
console.log('服务器启动成功')})
- res.send()方法用来响应客户端
- 方法内部会检测响应内容的类型。
- 方法会自动设置http状态码。
- 方法会自动设置响应的内容类型及编码。
- res.status()方法为客户端设置响应状态码
- res.status(404);
2 app.use中间件
2.1 概念
-
中间件就是一些方法,可以接收客户端发送的请求、对请求作出响应,也可以将请求交给下一个中间件来处理。
-
中间件主要由两部分组成:中间件方法和请求处理函数。
- 中间件方法由express提供,负责拦截请求。
- 请求处理函数由开发人员提供,负责处理请求。
app.get('请求路径','处理函数'); //接收并处理get请求 app.post('请求路径','处理函数'); //接收并处理post请求
-
可以针对同一个请求设置多个中间件,对同一个请求进行多次处理。
- 默认情况下,请求从上到下依次匹配中间件,一但匹配成功,就终止向下匹配。
- 可以调用next()方法将请求的控制权传递给下一个中间件,直到遇到结束请求的中间件。
app.get('/request',(req,res,next)=>{ req.name = '张三'; }); app.get('/request',(req,res)=>{ res.send(req.name); })
2.2 中间件用法
- app.use()匹配所有的请求方式,可以直接传入请求处理函数,代表接受所有的请求。
- app.use()第一个参数也可以传入请求地址,代表不论什么请求方式,只要是这个请求地址就接收这个请求。
- app.use()必须放在前面。
app.use((req,res,next) => {
console.log(req.url);
next();
})
app.use('/admin',(req,res,next) => {
console.log(req.url);
next();
})
const express = require('express');
const app = express();
// app.use()必须放在前面
app.use((req,res,next)=>{
console.log('请求app.use中间件');
next();
});
//当客户端访问request请求时执行此中间件
app.use('/request',(req,res,next)=>{
console.log('请求app.use中间件request路径');
next();
})