1,express框架的特性
1)提供了方便简洁的路由定义方式;
2)对获取HTTP请求参数进行了简化处理;
3)对模板引擎支持度高,方便页面渲染;
4)提供中间件有效控制HTTP请求;
5)拥有多个中间件可对其功能进行扩展;
2,express框架的使用方法
1,引入express框架
const express = require('express');
1,静态托管
app.use(express.static('public'))
2,加载路由
app.use(router);
app.listen(3000,(req,res)=>{
console.log('running....');
});
3,注册路由的方式
app.get('/about',(req,res)=>{
res.send('about');
})
注:send()和end()方法两者的区别:
// 1. send方法内部会检测响应内容的类型
// 2. send方法会自动设置http状态码
// 3. send方法会帮我们自动设置响应的内容类型及编码
4,next中间件的使用:
// 引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
// 接收所有请求的中间件
app.use((req, res, next) => { console.log('请求走了app.use中间件'); next()
})
// 当客户端访问/request请求的时候走当前中间件
app.use('/request', (req, res, next) => { console.log('请求走了app.use / request中间件')
next()
})
app.get('/list', (req, res) => {
res.send('/list')
})
app.get('/request', (req, res, next) => {
req.name = "张三";
next();
})
app.get('/request', (req, res) => {
res.send(req.name)
})
// 监听端口
app.listen(3000);console.log('网站服务器启动成功');
next()中间件的使用是加载同一个路由时,前一个路由执行完必须使用中间件next()方法,交给下一个路由继续执行,否则程序就会被挂载不会继续往下执行。
next()的方法还可用于页面维护例:
app.use((req, res, next) => {
res.send('当前网站正在维护...')
})