2012-12-07 49 views

回答

3

使其非常簡單的一種方法是使用中間件。

var http = require('http'), 
    httpProxy = require('http-proxy'); 

var apiKeyMiddleware = function (apiKey) { 
    return function (request, response, next) { 
    // Here you check something about the request. Silly example: 
    if (request.headers['content-type'] === 'application/x-www-form-urlencoded') { 
     // and now you can add things to the headers, querystring, etc. 
     request.headers.apiKey = apiKey; 
    } 
    next(); 
    }; 
}; 

// use 'abc123' for API key middleware 
// listen on port 8000 
// forward the requests to 192.168.0.12 on port 3000 
httpProxy.createServer(apiKeyMiddleware('abc123'), 3000, '192.168.0.12').listen(8000); 

請參閱Node-HTTP-Proxy, Middlewares, and You瞭解更多詳情,以及該方法的一些注意事項。

+0

史蒂夫,謝謝!它在頭文件方面很有意義。是否有任何解決方案來調整請求數據/正文本身,比如添加API令牌? – aliona

+0

@aliona我認爲你可以像使用request.body一樣修改它,但也許你可以告訴我們API API是如何在你使用的API中被接收的。通常我會預期它在查詢字符串或標題中。 – explunit

+0

API期望api標記根據請求方法'GET','POST','UPDATE'或'DELETE'存在於查詢字符串或請求體中。 – aliona