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() 更合适。

  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/samve/p/10853446.html
Copyright © 2011-2022 走看看