從Express版本4.x開始,app.router
已被刪除。現在路由按照它們添加的順序執行。
現在你可以使用express.Router,因爲它可以讓你有孤立的路由實例,在你的例子中你可以用自己的版本化路由創建許多路由器。
事情是這樣的:
// app.js
'use strict';
var express = require('express');
var app = express();
var userRouterV1 = require('./routes/v1/userRouter.js');
var userRouterV2 = require('./routes/v2/userRouter.js');
app.use('/v1/api/users', userRouterV1);
app.use('/v2/api/users', userRouterV2);
app.listen(4000, function() {
console.log('server up an running');
});
和你孤立路線版本1:
// /routes/v1/userRouter.js
'use strict';
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.send('Hello v1');
});
module.exports = router;
最後你的孤立路線版本2:
// /routes/v2/userRouter.js
'use strict';
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.send('Hey v2');
});
module.exports = router;
這恰好是頂我頭,如果我錯了,請原諒我 - 是的,這種模式會起作用(我在某處使用過) - 但據我記憶,你想覆蓋特殊(定義全局處理程序之後的cific路由('/ version2')*),而不是之前(所以'app.use(app.router)'將*先於* app.use('/ version2')')。 – bardzusny