1. 程式人生 > >express的中介軟體use,Router

express的中介軟體use,Router

Express中一個非常核心的概念就是中介軟體(middleware)。在官方文件中,有這樣一句話:
An Express application is essentially a series of middleware calls.
也就是說,一個Express應用,從本質上來說,就是一系列中介軟體的呼叫。那麼,中介軟體到底是什麼呢?其實,一箇中間件,就是一個函式。通常情況下,一箇中間件函式的形式如下:

function middlewareName(req, res, next) {
    // do something
}
如果是錯誤處理的中介軟體,形式如下:

function middlewareName(err, req, res, next) {
    // do something

}


app.use呼叫的是Router的例項_router.use,即Router的原型方法,跟router.use一樣

router.use需要呼叫app.use('/foo', router);才會生效,

所以在express專案中,想要將路由分開寫,可以如下

app.js

/***********/

var app = express();
var routes = require('./routes/test');
routes(app);


總路由

/*******/

test.js

module.exports 
= function (app) { app.get('/', function (req, res) { res.redirect('/index'); }); app.use('/users', require('./user')); app.use('/index', require('./index')); };


首頁

index.js

/*******

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;

/********/

其他路由

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('*', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;


注意:在其他路由這裡router.get('*',function(){}),url一定要是*或者/