在将数据发布到数据库后,如何重定向到另一个页面?

时间:2016-10-31 02:23:13

标签: node.js express post

我有一个表单,我正在将信息插入数据库。那部分工作得很好但是如何在那之后重定向到另一个页面?

app.post('/create', function (req, res) {
        Room.findOne({'name' :req.body.name}, function(err,room){
            if(err){
                return done(err);
            }

            if(room){
                return done(null,false,req.flash('this room name is taken'));
            }else{
                var newRoom = new Room();
                newRoom.name = req.body.name;
                newRoom.topic = req.body.topic;
                newRoom.participants = req.body.participants;
                newRoom.type = req.body.type;
            }
            newRoom.save(function(err){
                if (err){
                    throw err;
                }
                redirect: '/home';
            })

3 个答案:

答案 0 :(得分:2)

使用 Express ,您可以使用res.redirect()方法。有关完整文档click here

在您的情况下,请替换:

redirect: '/home';

以下内容:

res.redirect(301, '/home');

答案 1 :(得分:1)

参考here查看nodejs的http.Response API。 response.writeHead(statusCode [,statusMessage] [,headers])

替换此行

redirect: '/home';

以下

res.writeHead(302,{
            'Location':'/path',
        });
        res.end();

重定向的状态代码是3xx级别,示例中的302是“找到的”#39; 位置' header将提供重定向到

的路径

如果使用Express编写,请参考here并使用

res.redirect([statusCode,] '/path')

如果没有明确表达可选的状态代码,则会找到302'默认情况下

答案 2 :(得分:0)

res.redirect(pathnam) 

默认情况下会发送302状态码, 或者您可以将状态代码作为第一个参数

传递
res.redirect(301, pathname)