首页 > 解决方案 > 如何管理多个 Express 路由器以相互重定向

问题描述

我正在使用快递。

我遇到了一个问题,我无法从一个路由文件夹重定向到另一个路由文件夹。为了进一步解释,我在同一个地方有 app.js 和 routes 文件夹。

这是我的 app.js 路由中间件

app.use(homeRoutes);
app.use('/blog', apiRoutes);

我有一个获取请求的中间件,如下所示

// in routes/homeRoutes.js
router.get('/', (req, res) => {
    res.redirect('/blog');
});

这应该与

// in routes/apiRoutes.js
router.get('/', blogController.blog_index);

// in controller
const blog_index = (req, res) => {
    Blog.find().sort({ createdAt: -1 })
        .then(result => res.render('index', { blogs: result, title: "List" }) )
        .catch(err => console.log(err));

但是,我收到 404 错误。但是当我将下面的代码移到 app.js 中时,它就可以工作了。

// in routes/homeRoutes.js
router.get('/', (req, res) => {
    res.redirect('/blog');
});

我想知道如何使它在两个单独的路由文件中工作。这样我就可以组织和使我的项目尽可能干净。

请让我知道它的解决方案以及您可以给我的任何其他建议。非常感谢您提前。

标签: javascriptnode.jsexpressroutes

解决方案


在 routes/homeRoutes.js 你应该写这个

const express = require('express);
const router = express.Router();

router.get('/', (req, res) => {
    res.redirect('/blog');
});

module.exports = router;

推荐阅读