node.js 的 中间件 初理解
听说中间件还挺重要,下面梳理一下初认识:
中间件是什么?简单说说http请求服务的过滤,当交给函数处理之前先交给它处理。匹配后会终止,要想再匹配,得加: next.
中间件能解决什么问题?检测用户登录 / 检测RBAC曲线 等等
例子:
app.use(\'/\',function(req,res,next){
console.log(\'1\');
next(); //重要代码
}
app.get(\'./stu\',function(req,res){
console.log(\'stu index\');
res.send(\'stu index\')
}
这个在输出的时候会输出1,再输出stu index。
如果
app.use(\'/\',function(req,res,next){
console.log(\'1\');
}
app.get(\'./stu\',function(req,res){
console.log(\'stu index\');
res.send(\'stu index\')
}
则只输出1,不会往下执行了。
第二个大作用,可以过滤错误,对所有错误做统一处理:err,req,res,next 这些参数有些可以不写,但是顺序不能乱。
app.get(\'./stu\',function(err,req,res,next){
if(err) next(err)
.....
}
app.get(\'./stu/created\',function(err,req,res,next){
if(err) next(err)
.....
}
在最后统一处理err,解放程序员双手,不繁琐
app.use(\'/\', function(err,req,res,next){
res.send(\'网络异常。。。\') //要改提示信息在这里改即可:res.send(\'网络异常,请稍后重试\')
}