使其非常簡單的一種方法是使用中間件。
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瞭解更多詳情,以及該方法的一些注意事項。
史蒂夫,謝謝!它在頭文件方面很有意義。是否有任何解決方案來調整請求數據/正文本身,比如添加API令牌? – aliona
@aliona我認爲你可以像使用request.body一樣修改它,但也許你可以告訴我們API API是如何在你使用的API中被接收的。通常我會預期它在查詢字符串或標題中。 – explunit
API期望api標記根據請求方法'GET','POST','UPDATE'或'DELETE'存在於查詢字符串或請求體中。 – aliona