zoukankan      html  css  js  c++  java
  • express中app和router的区别

     
    var app = express(); 
    var router = express.Router();

    以上二者的区别是什么,什么时候用哪个最合适?

    区别看下面的例子:

    app.js

    var express = require('express'),
        dogs    = require('./routes/dogs'),
        cats    = require('./routes/cats'),
        birds   = require('./routes/birds');
    
    var app = express();
    
    app.use('/dogs',  dogs);
    app.use('/cats',  cats);
    app.use('/birds', birds);
    
    app.listen(3000);

    dogs.js

    var express = require('express');
    
    var router = express.Router();
    
    router.get('/', function(req, res) {
        res.send('GET handler for /dogs route.');
    });
    
    router.post('/', function(req, res) {
        res.send('POST handler for /dogs route.');
    });
    
    module.exports = router;

    在app.js 中调用 express() 时,返回一个app对象。

    app对象可以看作创建了一个Express应用程序,app的作用是做一些全局的处理

    router是开发人员做业务处理的利器(比如你可以通过router去use你自己写的针对某个特定路由的中间件),这样的好处可以更细的划分controller,router就是一个mini的app。router可以更细的划分controller。

    “迷你应用程序”背后的想法是,应用程序中的不同路线可能变得相当复杂,你可以从将该逻辑移动到单独的文件中获益。

    在上面这个简单的例子中,/dogs 路由的逻辑已经被移动到自己的文件中,所以它的 GET 和 POST 处理程序不会混乱 app.js。

    现在,你可以独立地处理对 /dog 的任何请求的逻辑,而不用担心它将如何影响猫 /birds。

    如果你具有与所有三条路由相关的逻辑(Express 中称为中间件),则可以将其放在 app.use(...) 调用上方的 app.js 中。

    如果你有逻辑仅与其中一条路线(/dog)相关,那么你只将它放在该路由的文件中。

    至于什么时候使用,其实上面的例子已经解释了。

    如果代码非常简单,完全可以 app.get('/',....),如果路由比较复杂,使用 express.Router() 更合适。

  • 相关阅读:
    PHP部署调优-自动部署工具
    set容器与map容器的简单应用
    POJ2431 优先队列+贪心
    离散数学交并补运算、差运算、异或运算的实现--biaobiao88
    构造命题公式的真值表--biaobiao88
    队列的简单使用
    二叉树的查找(前序、中序、后序、层序遍历)--biaobiao88
    A
    取整
    JavaScript对象
  • 原文地址:https://www.cnblogs.com/samve/p/10853446.html
Copyright © 2011-2022 走看看