nodeJs + express

时间:2018-06-06 13:58:27

标签: node.js express

在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

有人可以帮忙解决这个问题。 提前谢谢。

1 个答案:

答案 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'));