如何处理一条不同于所有其他路线的快速路线
How to handle one express route different than all other
我目前正在 NodeJS 应用程序中使用 Express 路由器。我只是一直在使用 app.use(app.router);
进行路由,而且效果很好。
但是,我现在正在测试一些新路线并希望以不同的方式处理它们。
理想情况下,我希望能够说:
var vers2Router = require('./routes/version2');
app.use('/version2', vers2Router);
app.use(app.router);
我可以这样做以便使用 vers2Router
处理所有 /version2
路由,而仅使用 app.router
处理其余路由吗?
从 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;
我目前正在 NodeJS 应用程序中使用 Express 路由器。我只是一直在使用 app.use(app.router);
进行路由,而且效果很好。
但是,我现在正在测试一些新路线并希望以不同的方式处理它们。
理想情况下,我希望能够说:
var vers2Router = require('./routes/version2');
app.use('/version2', vers2Router);
app.use(app.router);
我可以这样做以便使用 vers2Router
处理所有 /version2
路由,而仅使用 app.router
处理其余路由吗?
从 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;