将新用户注册到数据库后重定向不起作用(express、mongoose、react)
Redirect doesn't work after registering a new user to the db (express, mongoose, react)
我在使用这段代码时遇到了问题,新用户在数据库中注册得很好,但在单击提交按钮后就挂起了。想重定向到登录页面。我错过了什么?
app.post('/register', function(req, res) {
var body = req.body,
username = body.username,
password = body.password;
User.findOne({ username: username }, function(err, document) {
if (err) { res.status(500).send('Error ocurred') }
else {
if (document) {
{ res.status(500).send('Username already exists.') }
} else {
User.register(new User({ username: req.body.username }), req.body.password, function(err, user) {
if(err) {
console.log(err);
}
return res.render('/login');
})
}
}
})
})
我从您的评论中推断,这一定是创建此请求的表单 post。如果是这样,那么您可以使用
res.redirect('/login')
告诉浏览器在 POST 完成后加载 /login URL。然后浏览器将请求 /login
URL,然后您的 Express 服务器将该页面返回给浏览器,浏览器中的 URL 栏将显示重定向的 URL http://somedomain.com/login
这可能是你想要的。
至于 res.render()
,它需要本地文件系统中的文件名,而不是 URL,所以我猜测 /login
不是指向一个有效文件名HTML 用于渲染的模板,这就是它不起作用的原因。
我在使用这段代码时遇到了问题,新用户在数据库中注册得很好,但在单击提交按钮后就挂起了。想重定向到登录页面。我错过了什么?
app.post('/register', function(req, res) {
var body = req.body,
username = body.username,
password = body.password;
User.findOne({ username: username }, function(err, document) {
if (err) { res.status(500).send('Error ocurred') }
else {
if (document) {
{ res.status(500).send('Username already exists.') }
} else {
User.register(new User({ username: req.body.username }), req.body.password, function(err, user) {
if(err) {
console.log(err);
}
return res.render('/login');
})
}
}
})
})
我从您的评论中推断,这一定是创建此请求的表单 post。如果是这样,那么您可以使用
res.redirect('/login')
告诉浏览器在 POST 完成后加载 /login URL。然后浏览器将请求 /login
URL,然后您的 Express 服务器将该页面返回给浏览器,浏览器中的 URL 栏将显示重定向的 URL http://somedomain.com/login
这可能是你想要的。
至于 res.render()
,它需要本地文件系统中的文件名,而不是 URL,所以我猜测 /login
不是指向一个有效文件名HTML 用于渲染的模板,这就是它不起作用的原因。