将新用户注册到数据库后重定向不起作用(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 用于渲染的模板,这就是它不起作用的原因。