2012-10-18 23 views
15

我將創建一個/api端點盲目地將請求和響應代理來回傳遞給舊版RESTful API系統(用Ruby編寫並託管在不同的域)。使用Express JS .all()方法:檢測實際使用哪個VERB

這是一箇中介過渡階段,所以應該只是工作。

因此,我看到如何用app.all()輕鬆實現。但是,由於API是RESTful,我還必須維護用於請求的HTTP動詞 - 因此,我可以從req對象中檢測到它嗎?如果沒有,當然我可以訂閱GET,PUT,POST,DELETE,OPTIONS等5個處理程序,但避免這種情況要好得多。

另外,我該如何處理請求體(查詢字符串和有效載荷)? 我假設我需要手動重新創建查詢字符串從解析req.query並通過req.bodyrequesthttps://github.com/mikeal/request原樣 - 是不是?

回答

24

我想你們都需要的是req.method。而要處理正文,請添加express.bodyParser()中間件。

+0

權利,我已經發現它:) – Guard

+0

任何建議如何處理GET和POST PARAMS? – Guard

+0

GET PARAMS是req.query。後參數是req.body(如果使用中間件進行分析)。你有沒有檢查過expressjs指南? – Anatoliy

3

如果您只是想傳遞請求並返回響應,那麼您正在尋找代理

我建議檢查一下node-http-proxy。只需加載代理庫,初始化代理並代理所有請求。

+0

看起來很有希望。但有細微之處。遠程端有不同的結構('nodeapp.com/api/v1/something?get = var'涉及'api.rubyapp.com/v1/something?get = var')。我也不完全清楚查詢字符串會發生什麼(特別是如果我有混合的GET和POST PARAMS) – Guard