2017-01-01 44 views
0

我试图返回node.js的另一个站点的POST请求的身体,但下面的函数不返回任何的Node.js的request.POST返回undefined

// returns "undefined" 
    mysqlVerify = (socialclub_id, session_id) => { 
     request({ 
      url: 'http://myapi.site/VerifyUser', 
      method: 'post', 
      form: { 
      socialclub_id: socialclub_id, 
      session_id: session_id 
      } 
     }, (error, response, body) => { 
      if(error) { 
       return false  // this isnt returning 
      } else { 
       console.log(response.statusCode, body) 
       return body == "1" // this isnt returning 
      } 
     }) 
    } 

其他网站正在接收帖子请求,并且当我使用console.log时,我也收到了正确的回复,但回报不起作用。我究竟做错了什么?

回答

1

在调用函数时,您不能在回调中使用return来返回值。你可以通过mysqlVerify回调(一旦结果确定其运行功能),并调用它,一旦你得到回应,就像这样:然后

mysqlVerify = (socialclub_id, session_id, callback) => { 
    request({ 
     url: 'http://myapi.site/VerifyUser', 
     method: 'post', 
     form: { 
      socialclub_id: socialclub_id, 
      session_id: session_id 
     } 
    }, (error, response, body) => { 
     if(error) { 
      callback(false)  // call the function if false 
     } else { 
      console.log(response.statusCode, body) 
      callback(body == "1") // call the function if condition met 
     } 
    }); 
} 

callback功能可以做任何你需要的结果mysqlVerify