2017-01-01 171 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