JsonClientを復元するためのラッパーを置くと、コードの変更を最小限に抑えることができ、設定はあなたが望むように動作すると思います。
次に、このようにそれを使用するライブラリファイルmyClient.jsに
'use strict';
var restify = require('restify');
var jsonClient = null;
module.exports = {
createJsonClient: function(opts){
var opts = opts || {};
var url = opts.url;
var parts = url.split('/');
var main_url = parts[0] + '//' + parts[2];
var basePath = parts[3] ? parts[3] : '';
jsonClient = restify.createJsonClient({url: main_url});
return {
get: function(path, cb){
var adjusted_path = '/' + basePath + path;
jsonClient.get(adjusted_path, function(err2, req2, res2, obj2){
return cb(err2, req2, res2, obj2);
});
}
}
}
}
を作成します。
var myClientWrapper = require('./lib/myClient');
var client = myClientWrapper.createJsonClient({url: 'http://localhost:8000/api'});
client.get('/service/path/one', function(err, req, res, obj){
if(err){
console.log(err.message);
return;
}
console.log(res.body);
});
さらにエラーチェックを使用する可能性があり、URL解析は少し脆弱ですが、機能します。私はそれを試しました。もちろん、私はget
関数をラップするだけでしたが、他の関数でどのように動作するかを見ることができます。
ハ!私はちょうどあなたが質問したことさえ知りませんでした。決して尋ねられなかったことに答える私の愚行。 – HeadCode
@headcode本当はこのコミュニティをもう得られません。あなたは答えました、そして、私はそれを受け入れることを忘れました。私もいくつかのデューデリジェンスを行い、gitを修正する際に問題をオープンしました。開発者は、実際にはその動作が誤解を招くと答えました。 –