无法使用res.redirect()方法重定向express + NodeJS [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用res.redirect()方法重定向express + NodeJS [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

大家好。我在nodeJs中构建我的第一个应用程序。到目前为止,一切都很顺利。我在尝试使用NodeJS应用程序中的服务器端代码重定向时遇到问题不会抛出任何错误,但在浏览器上它保持在同一页面上并且不会从索引页面重定向到聊天室页面。

Index.js

var express = require('express');
var router = express.Router();
var obj = require('../bin/www');
var db = require('../databaseModels');



/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express Chat' });
});




//here we will save the username of the New user
router.post("/setUserName", async function(req,res) {
try{
    var newUser = new db.Users(req.body);
    await newUser.save()
    //Emit the event that a new user has joined the chat
    obj.io.emit("newUserJoined", req.body)
    return res.redirect(301,"http://192.168.34.54:4747/chatroom");
}
catch(error) {
    res.sendStatus(500);
    console.log(error);
}
})

module.exports = router;

chatroom.js

var express = require('express');
var router = express.Router();
var obj = require('../bin/www');
var db = require('../databaseModels');

/* GET users listing. */
router.get('/', function(req, res, next) {
    res.render('chatroom', {title: 'Welcome to Chat Room'});
});


module.exports = router;

任何形式的回应都表示赞赏。谢谢。

答案

在bin / www中使用你的'聊天室'路由器,就像你使用'索引'路由器一样。

app.use('/chatroom',chatroom);

在索引路由器中,在调用聊天室路由器时使用相对路径。

return res.redirect(301,"/chatroom");

以上是关于无法使用res.redirect()方法重定向express + NodeJS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Vue s-s-r serverPrefetch 使用 this.$s-s-rContext.res.redirect 重定向服务器

Express URL跳转(重定向)的实现

Express URL跳转(重定向)的实现

Express URL跳转(重定向)的实现

如何在 nodejs express 重定向上启用 CORS?

node express 设置重定向