Express学习

Express

npm install express

1.框架特性

  • 提供了方便简洁的路由定义方式
  • 对获取HTTP请求参数进行了简化
  • 对模板引擎支持度高
  • 提供了中间件机制有效控制HTTP请求
  • 拥有大量第三方中间件 、

 

2. Express基础

2.1Express框架写路由

 

 

express路由的请求响应不再需要end方法而是用send()方法:

1.send方法内部会检测响应内容的类型

2.send方法回自动设置http状态码

3.send方法会自动设置响应内容的类型及编码

 

2.2Express框架获取请求参数

 

 

3.中间件

中间件就是一堆方法,对客户端发来的请求进行接受、做出响应,也可以将请求交给下一个中间件继续处理

 

 

中间件包含:中间件方法和请求处理函数

3.1中间件方法

中间件方法负责拦截请求

3.2请求处理函数

请求处理函数由开发人员提供,负责处理请求

get、post就是两个中间件

 

3.3连续中间件

默认中间件是从上到下依次匹配,如果匹配成功,中间件就终止匹配

但是可以用请求处理函数的第三个参数next,并在函数中调用next()函数

 

3.4app.use中间件用法

匹配所有的请求方式,可以直接传入请求处理函数,代表接受所有请求

这个中间件必须定义在其他中间件之前,因为是从上到下匹配 ,不然找不到中间件

 

第一个参数也可以传入一个请求地址,表示可以接受这个请求地址的所有请求方式

 

3.5中间件应用

3.5.1路由保护:

客户端在访问需要登陆的页面时,可以先使用中间件判断用户状态,如果未登录,则拦截请求,直接响应禁止登陆

 

3.5.2网站维护公告:

维护期间,不希望用户访问网站,可以对所有请求拦截,直接做出响应

 

3.5.3 404 页面定制

在所有中间件后定义一个请求不存在的响应,就是当前面的所有请求都不匹配时,才会返回404这个中间件,并设置res.status(404),此时若访问一个不存在的就会返回状态码为404的也没面

 

3.6错误处理中间件

捕获错误,并返回错误信息

 

4.express请求处理

4.1构建模块化路由

const express = require('express);
//创建网站服务器
const app = express();
//创建路由对象
const home = express。Router();
//将路由和请求路径进行匹配
app.user('/home',home);
//在home路由下继续创建路由
home.get('/index',(req,res)=>{
    // /home/index
    res.send('还原');
});

4.1.1模块化

暴露出home路由模块,在应用时可直接require()导入

const express = require('express');

const home = express.Router();

home.get('/index',(req,res)=>{
    res.send('123');
})

module.exports = admin;

 

4.2GET参数获取

使用 req.query即可获取GET请求的参数,并会将参数转换为对象返回

//例如http://localhost:8080/?name=zhangsan&age=20
app.get('/',(req,res)=>{
    req.query;
    //{
        name:zhangsan,
        age:20,
    }
})

 

4.3POST参数获取

使用第三方包 body-parser

const bodyParser = require('bode-parser);
//用app.use中间件对所有请求拦截,在调用bodeParser的方法urlencoded,,检测url是否携带请求参数,
//若携带则将参数转化为对象放进body中
//extended作用是将参数转化为对象格式
app.use(bodyParser.urlencoded({ extended:false}));
//接受请求
app.post('/add',(req,res)=>{
    //接受请求参数
    console.log(req.body);
})

 

4.4Express路由参数

app.get('/find/:id/:',(req,res)=>{ 
    console.log(req.params);//{id:123} 
}) 
//客户端 localhost:xxx/find/123;

 

4.5静态资源处理

express.static可以方便的托管静态文件(img、css、js文件等)

app.use(express.static('public'));

参数为静态资源的绝对路径目录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值