express的中介軟體use,Router
阿新 • • 發佈:2018-11-08
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
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;