通过反应在快递中进行重定向

mao*_*cio 1 node.js express reactjs

我正在使用 react 及其路由器来重定向我的应用程序。当我在我的服务器 express 中使用 get 指令时,它工作正常。但是当我发布一条指令时,它不会重定向。我必须做什么?。这是我的代码:

(我以我期望的方式收到回复,但在那之后,什么也没有发生)

lisaApp.post('/signup', (req, res) => {
  const validationResult = validateSignupForm(req.body);
  if (!validationResult.success) {
    return res.status(400).json({
      success: false,
      message: validationResult.message,
      errors: validationResult.errors
    });
  }

  var newClient = req.body
  newClient.clientemailname = newClient.userclient
  newClient.client_id = uuid.v4()

  delete newClient.confirmPassword

  ClientApi.saveClient(newClient, function (err, usr) {
    if (err) return res.status(500).send(err.message)

    console.log('ready to redirect') //Here, the response has a status "0k"
    res.redirect('/')
  });
});
Run Code Online (Sandbox Code Playgroud)

Tol*_*see 8

你可以这样写你的api:

    lisaApp.post('/signup', (req, res) => {
      const validationResult = validateSignupForm(req.body);
      if (!validationResult.success) {
        return res.status(400).json({
          success: false,
          message: validationResult.message,
          errors: validationResult.errors
        });
      }

      var newClient = req.body
      newClient.clientemailname = newClient.userclient
      newClient.client_id = uuid.v4()

      delete newClient.confirmPassword

      ClientApi.saveClient(newClient, function (err, usr) {
        if (err) return res.status(500).send(err.message)

        console.log('ready to redirect') //Here, the response has a status "0k"
        return res.status(200).json({
            success:true,
            redirectUrl: '/'
        })
      });
    });
Run Code Online (Sandbox Code Playgroud)

在您的 React 文件中,您可以在 POST 处理程序中使用此代码使用 react-router 进行重定向。

this.history.pushState(null, res.redirectUrl);