在nodejs + express应用程序中,我们可以拥有不同的路由文件,并将它们包含在一个文件中。如下所示。
在hotel.routes.js中的我有很少的路线,比如
const express = require("express");
const hotelsCtrl = require("../controllers/hotels.controller");
const router = express.Router();
router
.route("/")
.get(hotelsCtrl.getAllHotels);
module.exports = router;
在review.routes.js中我有几条路线,比如
const express = require("express");
const reviewsCtrl = require("../controllers/reviews.controller");
const router = express.Router();
router
.route("/")
.get(reviewsCtrl.getAllreviews);
module.exports = router;
现在我想在索引文件中包含hotel.routes.js和review.routes.js,当路线为" / hotel"它应该去hotel.routes.js,当路线是" / review"它应该去review.routes.js
有人可以帮忙解决这个问题。 提前谢谢。
答案 0 :(得分:1)
你可以这样做:
app.use('/hotel', require('./hotel.routes.js'));
app.use('/review', require('./review.routes.js'));
这会将hotel.routes.js
导出的路由器放在/hotel
上,将review.routes.js
导出的路由器放在/review
上。
通过使用三个文件来设置单个/hotel
路径,您似乎有点过于复杂。
您也可以这样做:
const hotelsController = require("../controllers/hotels.controller");
app.get('/hotel', hotelsController.getAllHotels);
实际上不需要单独的hotel.routes.js文件。
或者,您可以将/hotel
放在hotel.routes.js
文件中,如下所示:
const hotelsCtrl = require("../controllers/hotels.controller");
const router = require("express").Router();
router.get('/hotel', hotelsCtrl.getAllHotels);
module.exports = router;
然后,你在index.js
所要做的就是:
app.use(require('./hotel.routes.js'));