Express框架之中间件(二)

前面的中间件以get路由为例,下面讲解app.use和常规get作为中间件的不同之处!


app.use()也是一个中间件。与getpost不同的是,他的网址不是精确匹配的。而是能够有小文件夹拓展的。

比如网址:  http://127.0.0.1:3000/admin/aa/bb/cc/dd

1           app.use("/admin",function(req,res){  
2               res.write(req.originalUrl +   "\n");   //    /admin/aa/bb/cc/dd
3               res.write(req.baseUrl +   "\n");  //   /admin
4               res.write(req.path +   "\n");   //    /aa/bb/cc/dd
5               res.end("你好");
6           });

如果写一个

1           //当你不写路径的时候,实际上就相当于"/",就是所有网址
2           app.use(function(req,res,next){
3               console.log(new Date());
4               next();
5           });

app.use()就给了我们增加一些特定功能的便利场所。 

实际上app.use()的东西,基本上都从第三方能得到。

var express=require("express");
var app=express();
//静态服务
//在指定路由/jingtai/呈递www目录下静态服务
app.use("/jingtai/",express.static("./www"));
//新的路由
app.get("/css",function(req,res){
    res.send("这仅仅是一个路由"+"<hr />")
})
app.listen(3000)

一般我们不使用use作为中间件,当然我们不如使用制度功能比如上述例子,进行使用静态web服务时候,前面调取的路径可以呈递静态服务的存放目录!根据适合的应用场景采取不同的方案!app.use的中间件和post,get的不同之处在于use的模糊匹配,只要路径前面(req.baseUrl)匹配成功,后面的随意输入不影响!匹配(/haha),在req.url任意追加到(/haha)后面随意传递都不影响!



本博客所有文章如无特别注明均为原创。作者:敏达复制或转载请以超链接形式注明转自 敏达博客
原文地址《Express框架之中间件(二)
分享到:更多

相关推荐

未登录,暂时无法评论和查看评论!

点击这里给我发消息点击此处联系博主!