Meteor(NodeJS Framework)には、Meteor Method
から呼び出された元の関数であれば、常に現在のセッションに属するuserIdを返すMeteor.userId()
という関数があります。NodeJSアプリケーションで何らかの種類のコンテキストを作成するには、そこから呼び出すすべての関数でアクセスできますか?
Meteor.userId()
の関数は、流星DDP?._CurrentInvocation?.get()?.connection
を使用しています。だから何とかこの "マジックライン"は私の現在のDDP接続を取得します。これはコールバックの深い部分に埋もれているときにも機能します。
どうやら流星はそれが参照する文脈を設定します。流星DDPを利用しないが、プレーンなHTTP APIである別のAPIのために、この種のトリックをしたい。私が何をしたいか
:これが必要な場合
doActualStuff = function(param1, param2, param3) {
// here, i am burried deep inside of calls to functions
// but the function at the top of the stack trace was
// `answerRequest`.
// I want to access its `context` here but without
// passing it through all the function calls.
// What I want is something like this:
context = Framework.getRequestContext()
}
answerRequest = function(context) {
//do some stuff
someFancyFunctionWithCallback(someArray, function(arrayPosition) {
aFuncCallingDoActualStuff(arrayPosition);
})
}
私はanswerRequest
への呼び出しをラップすることができます。
私は二回APIを呼び出すとの間でデータベース呼び出しがあるかのように、コンテキストはコールバックに上書きされます、これは動作しませんと思います。 – Tobi