首页 > 解决方案 > 如何从节点中的发布请求返回对前端的响应?

问题描述

我试图在客户端发出 POST 请求后从节点发出 POST 请求,并将后端响应传递回客户端。如何将来自后端的发布响应传递回最初来自前端的发布请求?我可以在异步范围内访问承诺,但我怎么能... err... 将它推/放回客户端?谢谢你。

async function sendToken() {
            return await axios
                .post("http://localhost:3001/Recaptcha", {token: token})
                .then((res) => {
                    console.log('client recaptcha sent');
                    return res;
                })
                .catch((err) => console.log(err, 'recaptcha not sent'));
        }
app.post('/Recaptcha', (req, res) => {

  let p = new Promise((resolve, reject) => { // just to see if it would work
  console.log(req.body.token)
  const token = req.body.token
  const secret = process.env.secret

  async function validateRecaptcha() {
    return await axios
      .post(`https://www.google.com/recaptcha/api/siteverify?secret=${secret}&response=${token}`)
      .then((res) => {
        console.log('server recaptcha sent');
        resolve(res);
        return res;
      })
      .catch((err) => console.log(err, 'recaptcha not sent'));
  }
  
  validateRecaptcha().then((res) => {
    console.log("recaptcha data:", res.data);
    //if (res.data.success === true) { // *if I could do this everything would work*
    //  res.send("HELLO")
    //}
    p.then((result) => { // I can access a promise result, but how do I push it... up?
      console.log("p:", result.data)
      res.send(result.data) // res.send is not a function error
    })
  })

  console.log(validateRecaptcha.res) // undefined, pending promise
  if (res.data.success === true) { // *how do I access this data to send to front?*
    res.send("HELLO")
  } 
})

});

标签: javascriptnode.jsreactjsexpressfetch

解决方案


推荐阅读