假设我想在这个对 google 的调用中添加一个查询参数,但是对它进行编码而不是从 http 调用中进行转发
我正在使用 nodejs hapi 框架
server.route({
method: '*',
path: '/{p*}',
handler: {
proxy: { host: 'google.com', port: 80, redirects: 5 }
}
});
可以在调用之前修改 url。
我通过代理做了这个:mapUri
server.route({
method: 'GET',
path: '/index/search/{p}',
handler: {
proxy: {
mapUri: function (request, callback) {
query = request.url.search ? request.url.search : '';
p = request.params.p ? '.' + request.params.p +'.' : '' ;
//loaded from a configuration file
tls = Config..tls;
host = Config..host;
port = Config.port;
url = (tls ? 'https://' : 'http://') + host + port + p + request.path + query;
console.log('Method: ' + request.method.toUpperCase() + ' Url: ' + url);
callback(null,url);
}
}
}
});
工作的代码少一点
server.route({
method: 'GET',
path: '/{query}',
handler: {
proxy: {
mapUri: function(request, callback){
var url="https://www.google.com/search?q="+request.params.query;
callback(null, url);
}
}
}
});