用node开发项目,express是常用的框架,下面介绍下核心用法中间件和 app的use、get方法:
中间件的实现很简单:
// 一个简单的中间件
function middleware(req, res, next){
// req 参数可以接受一些请求的参数(req.query/req.body) 和 请求头信息
// res 用于响应信息
// 调用next()方法则进入下一个中间件
}
// 几种常见的调用方式
app.use(middleware);
app.use('/user',middleware); // 匹配部分路径
app.get('/login',middleware);
接下来是app.get/use的一些使用:
app.get(path,function); // 接收两个参数 路径 和 一个回调函数
app.use(path,function/router); // 也是接收两个参数 路径和get的区别是第二个可以放回调函数或者router对象
//值得注意的是,path如果忽略,如:app.use(function/router);也是合法的写法,表示匹配所有的路径
关于path和function的写法,如下示例:
// get 访问示例会匹配/app和其子集路径,如:http:127.0.0.1:3000/app 以及http:127.0.0.1:3000/app[/aa/bb...等等]都会匹配
app.get('/app',(req, res, next) => {
//TODO SOMETHING...
});
//use 路由匹配和get方法一样
app.use('/app',(req, res, next) => {
//TODO SOMETHING...
});
//另一种写法
app.use((req, res, next) => {
//TODO SOMETHING...
});
但是我们经常见的还有这种写法:
const session = require('express-session');
app.use(session({
secret: 'test01',
resave: false,
saveUninitialized: false
}));
其实背后的实现也很简单,返回一个类(req,res,next)=>{}函数就行了,例:
// 实现思路
app.use(myFunction());
function myFunction(){
// 做一些处理
return (req, res, next) => {
next();
}
}
感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!