2016-07-15 129 views
0

我處理與快速路由器PUT/API /結帳路線: this.router.put('/:id/checkout', (req, response, next) => { /*...*/ });如何在快速路由器路由處理程序中將PUT請求重定向到POST請求?

現在,當我處理與不同的第三方服務付費的不同類型的其中之一預計POST請求,我正在尋找一種方式來處理的PUT請求通過執行POST請求到第三方服務端點。我怎麼做 ?

我現在所做的是直接執行POST請求request.post

在這一點上的挑戰是如何處理資源移動的響應。

request.post({ 
    url : 'https://paymentgateway.com/charge', 
    form : { 
    product_id  : product_id, 
    amount   : amount 
    } 
}, (err, httpResponse, body) => { 

我來到這裏的響應是httpResponse.statucCode === 302body === <html><head><title>Object moved</title></head><body>。不知道如何處理這個。具有相同請求參數的HTML表單自動重定向客戶端以重定向URL。

+0

如果客戶做一個'PUT'請求到服務器,你不能讓它通過的HTTP響應代碼的手段做了'POST'請求​​到另一臺服務器,而不是(至少不是「自動」像30X)。代理你的請求已經是一個可行的解決方案。 – robertklep

+0

我現在面臨的挑戰是代理請求返回重定向狀態碼302.不知道如何處理它。 – MobileDream

+0

'request'不會遵循針對非GET請求發出的重定向,除非您將'followAllRedirects'設置爲'true'。 – robertklep

回答

0

httpResponse返回給請求結帳操作的客戶端執行該作業。客戶端自動處理重定向。

}, (err, httpResponse, body) => { 

    if (err) { 
    logger.error(err); 
    return response.status(err.code || 500).send(err); 
    } 

    return response.status(httpResponse.statusCode).send(httpResponse); 
});