Express框架 --router/app.use


翻看去年自己记录的印象笔记,准备把笔记上的一些内容也同时更新到博客上,方便自己查看。

1.app.use和app.get的区别及解析
app.use(path,callback)中的callback既可以是router对象又可以是函数 app.get(path,callback)中的callback只能是函数 这说明,给app.get(app.post、app.put同理)赋个路由对象是不行的,其实,可以将app.get()看作app.use的特定请求(get)的简要写法。即 var express = require('express'); var app = express(); app.get('/hello',function(req,res,next){ res.send('hello test2'); }); 等同于: var express = require('express'); var app = express(); var router = express.Router(); router.get('/', function(req, res, next) { res.send('hello world!'); }); app.use('/hello',router);

什么时用

那么,什么时用app.use,什么时用app.get呢? 路由规则是app.use(path,router)定义的,router代表一个由express.Router()创建的对象,在路由对象中可定义多个路由规则。可是如果我们的路由只有一条规则时,可直接接一个回调作为简写,也可直接使用app.getapp.post方法。即 当一个路径有多个匹配规则时,使用app.use,否则使用相应的app.method(get、post) 总结: app.use用来使用中间件( middleware) 2.Router
A router object is an isolated instance of middleware and routes. You can think of it as a “mini-application,” capable only of performing middleware and routing functions. Every Express application has a built-in app router.路由器对象是中间件和路由的孤立实例。 您可以将其视为“微型应用程序”,只能执行中间件和路由功能。 每个Express应用程序都有一个内置的应用程序路由器 A router behaves like middleware itself, so you can use it as an argument to app.use() or as the argument to another router’s use() method.路由器的行为就像中间件本身,因此您可以将其用作app.use()的参数或作为另一路由器的use()方法的参数。 The top-level express object has a Router() function that creates a new router object. Create a new router as follows: var router = express.Router([options]); 优质内容筛选与推荐>>
1、NHibernate和Entity Framework 4.0优劣势争论
2、2.15 JAVA日期处理
3、OAF_开发系列05_实现OAF图标按钮和图标库(案例)
4、大数字相乘
5、Kubeadm 1.9 HA 高可用集群本地离线镜像部署【已验证】


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号