express快速入门:
//引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
//根据浏览器的响应端口
app.get('/', (req, res)=> {
// send()
// 1. send方法内部会检测响应内容的类型
// 2. send方法会自动设置http状态码
// 3. send方法会帮我们自动设置响应的内容类型及编码
res.send('Hello World')
})
//监听端口
app.listen(3000)
对比原生代码:
const http = require('http');
const app = http.createServer();
app.on('/',(req,res)=>{
res.end('初始页面');
});
app.listen(3000);
中间件:express框架特有特色,可以对获取的数据进行预处理,也可以简化代码,增加代码的可读性
// 引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
//next:代表数据经过这个方法还会继续向下执行
app.get('/request', (req, res, next) => {
req.name = "张三";
//继续执行
next();
})
app.get('/request', (req, res) => {
res.send(req.name)
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
上面的中间件是专门针对get请求中的request请求地址。其他的请求地址不会触发那个方法。而下面的方法是所有执行的方法都执行的:
app.use((req, res, next) => {
console.log('请求走了app.use中间件');
next()
})
// use():第一个参数可以为请求地址,若请求地址固定,则无论请求方式是GET还是POST,都会经过use()方法
app.use('/request', (req, res, next) => {
console.log('请求走了app.use / request中间件')
next()
})
中间件的应用广泛,不但可以对获取的数据进行预处理,还可以在网站更新的时候禁止用户进行访问:
app.use((req, res, next) => {
res.send('当前网站正在维护...')
}