我刚刚阅读了快递文档并找到了这两个术语,app.use();并且router.use();
我知道app.use();在节点中用于在路径上安装中间件,我们经常在大多数节点应用程序中使用它.但router.use();它们都是一样的么?如果没有,那么差异是什么?
我在这里读到了路由器.我也在SO上发现了类似的问题"express.Router"与使用"app.get"的路由有什么区别? 和app.all('*')和app.use('/')之间的区别,但它们并没有真正回答我的问题.谢谢.
Sud*_*aur 95
router.get仅用于定义子路径.考虑这个例子:
var router = express.Router();
app.use('/first', router); // Mount the router as middleware at path /first
router.get('/sud', smaller);
router.get('/user', bigger);
Run Code Online (Sandbox Code Playgroud)
smaller函数将被调用.bigger函数将被调用.简而言之,app.use('/first', router)在path / first中安装中间件,然后相应地router.get设置子路径.
但是如果我们改为使用以下内容:
app.use('/first', fun);
app.get('/sud', bigger);
app.get('/user', smaller);
Run Code Online (Sandbox Code Playgroud)
fun将被调用,bigger会被调用smaller将被调用但请记住/ first/sud,不会调用任何函数.
此链接也可能有所帮助:http://expressjs.com/api.html#router
Lau*_*ura 62
router.use();为特定路由器服务的路由app.use();安装中间件,为应用程序的所有路由(或者如果您使用的那些路由匹配的路由app.use('/ANYROUTESHERE', yourMiddleware());)安装中间件.
示例用例可以是具有一个具有标准路由的路由器和一个处理api路由的路由器的app,其需要有效用户.
然后,您将只为api路由器安装身份验证中间件router.use(yourAuthMiddleware());.
如果您有一个应用程序虽然需要所有路由的有效用户,请安装应用程序的中间件 app.use(yourAuthMiddleware());
| 归档时间: |
|
| 查看次数: |
48701 次 |
| 最近记录: |