0

node-mysql を使用しており、任意のファイルからデータベース ファイルを要求して、このような接続を取得できる mysql の createPool を公開しています。

var db = ("./database");

db(function(err, connection) {
   //use connection to do stuff
}

connection.end()プールへの接続を返す呼び出しを常に覚えているとは限らないことに気付きました。その後、制限に達しました。

connection.end() が呼び出されるコールバック関数をいつ終了することにしても、接続の取得を設計するにはどうすればよいですか? これを行うことができる単一の場所を作成する方法がわからないので、開発者は接続を取得することだけに関心があります..

4

1 に答える 1

1

mysql の createPool がわからないのですが、ラップだけできないのでしょうか?

人々はを提供しfunction stuff(err, connection) { ... do whatever they want ... }ます。その関数を使って -関数を作成してみませんsave_stuffか? 何かのようなもの

function save_stuff_creator(stuff) {
    return function(err, connection) { stuff(err, connection); connection.end() }
}

try..catch-call の周りに何かが必要かもしれませんstuff()

connection他のコールバックのために誰かと一緒にいたい場合は、関数を次のように変更しstuff(connection, callback)、モジュールのようなものasyncseries-Object を使用できます。

connection.end()しかし、「ユーザースレッド」の終了を待ちたい場合の最終呼び出しを強制する方法がわかりません。それが実際の問題です。そのようなスレッドは存在せず、イベント ループ内のどのイベントが誰から発生したのかを把握する方法もありません。私の知る限り、イベント ループは js-developer に公開されていません。

呼び出し先を信頼できない場合は、呼び出し先のコードを追加の子ノードに入れることができます (モジュール を参照してくださいcluster。そのため、少し制御できます。子が終了すると、通知されます。

于 2013-06-28T20:15:59.157 に答える