我有一个表单,我正在将信息插入数据库。那部分工作得很好但是如何在那之后重定向到另一个页面?
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';
})
答案 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)