我正在使用 express 4.16 并且我试图保持我的代码整洁,所以我正在使用路由器功能。我知道我们可以链接路由器。让我们看这个例子:
./server.js:
var express = require('express');
var app = express();
var usersRoutes = require('./routes/users');
app.use('/users', usersRoutes);
app.listen(process.env.PORT || 3000);
./routes/user.js:
var express = require('express');
var router = express.Router();
var carsRoutes = require('./cars');
router.use('/cars', carsRoutes);
router
.get('/:id', (req, res) => {
// send back user info
});
module.exports = router;
./routes/cars.js:
var express = require('express');
var router = express.Router();
router
.get('/:id', (req, res) => {
// send back car info
});
module.exports = router;
所以现在我们可以打电话https//server.com/users/42
来获取用户https//server.com/users/cars/42
信息和汽车信息。但这并不是我真正想要的,在这种情况下,ahttps//server.com/cars/42
会更合适。相反,如果我们想要实现这个 urlhttps//server.com/users/42/cars
来获取所有用户 42 的汽车,或者https//server.com/users/42/cars/42
获取用户 42 的特定汽车怎么办。你如何告诉 Express 的路由器你也想要'users/:id'
?
这可能吗?如果可以,我们该怎么做?或者在这个例子中,我应该只在同一个文件中编码用户和汽车路线,并停止分成几个 .js 文件。