express框架基础
安装与使用
// 导入express模块
const express = require('express');
// 注册express模块
const app = express();
//挂载路由
app.get('/',(req,res)=>{
res.send(`<h1>首页</h1>`);
})
app.get('/user',(req,res)=>{
//req请求对象 获取请求参数
res.send(req.query);
})
app.get('/user/:id',(req,res)=>{
// req请求对象 获取动态参数
res.send(req.params);
})
// 启动服务器
app.listen(80,()=>{
console.log("server running at http://127.0.0.1");
})
托管静态资源
//托管静态资源
//前面是路径前缀,后面是静态资源
app.use('/public',express.static('./clock'));
路由定义
// Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数,格式如下:
app.METHOD(PATH,HANDLER)
// METHOD请求的类型
// PATH请求的 URL 地址
// HANDLER处理函数
app.get('/user/,(req,res)=>{
res.send(`这是路由`);
});
路由匹配机制
- 按照定义的先后顺序进行匹配
- 请求类型和请求的URL同时匹配成功,才会调用对应的处理函数
模块化路由
router.js 自定义路由模块文件
// 导入express
const express = require('express');
// 启动路由
const router = express.Router();
// 挂载路由
router.get('/',(req,res)=>{
res.send(`这是首页`);
})
router.get('/user/list',(req,res)=>{
res.send(`get user list`);
})
router.post('/user/add',(req,res)=>{
res.send('post new add');
})
// 向外共享
module.exports = router;
server.js 入口文件
// 1。导入express模块
const express = require('express');
// 2.启动express模块
const app = express();
// 3.导入路由模块
const router = require('./router');
// 4.注册路由
app.use('/api',router);
// 5.启动服务器
app.listen(8080,()=>{
console.log("server running at http://127.0.0.1:8080");
})
中间件
中间件(Middleware ),特指业务流程的中间处理环节
中间件一般要在路由之前注册
错误级别中间件要在路由之后注册
express中间件调用流程
express中间件格式
Express 的中间件,本质上就是一个 function 处理函数,Express 中间件的格式如下:
app.get('/',(req,res,next)=>{
next(); //next 函数是实现多个中间件连续调用的关键,它表示把流转关系转交给下一个中间件或路由。
})
定义一个中间件函数
const mw = function(req,res,next){
console.log(`这是一个中间件`);
next();
}
注册全局中间件
// 导入express模块
const express = require('express');
// 实例化express模块
const app = express();
// 第一个中间件
const mw = (req,res,next)=>{
req.a = 'a'
console