をあなたを助けモジュールcontinuation local storage
希望をされ使用しませんダイナミックスコープを追跡します。 CLSの周りのすべてのテキストを読む
はので、ここで、しばらく時間がかかった私は(素人の用語)何をしたかをまとめたものである
NOTE - 私は「厳格な」モードでNodeJsを使用しています。つまり、動的スコープは使用できません。その生産システムを考えると、私は厳格なモードを保ちたいと思う。それゆえ、動的スコープを達成する別の方法です。
1)CLSは動的コンテキスト/スコープを作成します。これにより、作成されたスコープ内に入るまでしか見えないキーと値のペアを設定/取得できます。
2)私はBluebird's Promisesを使用しているため、CLSはPromises内でコンテキスト/スコープを利用できるようにパッチを使用する必要がありました。 https://www.npmjs.com/package/cls-bluebird
3)CLSを約束して使用すると、時間がかかりました。ここでは、さまざまな図書館が異なる成果を生み出すためにCLSをどのように使用したかについての素晴らしい議論があります。
var cls = require('continuation-local-storage');
var clsbluebird = require('cls-bluebird');
var namespace = cls.createNamespace('ns');
clsbluebird(namespace);
var result;
namespace.run(function() {
namespace.set('key', 'value');
result = abc(); // returns 'value'
});
// versus doing –
result = abc(); // returns undefined
function abc() {
return namespace.get('key');
}
5)ユースケース - - これは私がCLS(言い換えと単純化された)を用いる方法である https://github.com/TimBeyer/cls-bluebird/issues/6
4)このように、私は、トランザクションの基本的なトレースを実施しました。例えば。 NewRelic、Traceなど
あなたがここで求めていることを理解することは本当に難しいです。良い質問をする方法のガイドラインをお読みください。 –