在重定向上找不到快速路由,但存在路由

时间:2019-01-27 10:32:21

标签: node.js reactjs express

因此,在我的快递服务器中,我已重定向到这样的路由/chat

if (!user) {
            res.json(info);
        } else {
            req.logIn(user, function() {
                res.redirect('/chat');
            })
        } 

我正在像这样记录我的路线

app.use('/chat', require('./routes/chat'));

以及我的路线/聊天文件

import * as express from 'express';
const router = express.Router();

// Chat Page
router.get('/chat', (req: express.Request, res: express.Response) => res.render('chat'));

module.exports = router;

我要做的是将其重定向到显示React组件但返回GET http://localhost:3000/chat 404 (Not Found) Error: Request failed with status code 404

的路由。

如果我仅粘贴路径http://localhost:3000/chat并转到该页面,则我的组件将显示。

因此,我不确定在这种情况下该怎么办以及如何解决?

2 个答案:

答案 0 :(得分:0)

尝试

router.get('/', (req: express.Request, res: express.Response) => res.render('chat'));

您已经定义了/chat路径。

答案 1 :(得分:0)

通过app.use(),您可以为应用程序对象的实例定义应用程序级中间件。

因此,您可以在chat.js的/chat路由上定义一个中间件

app.use('/chat', require('./routes/chat'));

现在在chat.js中,您可以执行以下操作:

router.get('/', (req: express.Request, res: express.Response) => res.render('chat'));

它解析为/ chat。

即使您要将另一条路由定义为/chat/room,也可以在chat.js中进行

router.get('/room', (req: express.Request, res: express.Response) => res.render('chat'));