4

Node アプリが起動すると、次のようにデータベースに接続しようとします。

var db = mongoose.connect('mongodb://what:ever.com:1234/database', function(err) {
    if(err) console.log('MongoDB: connection error -> ' + err);
    else console.log('MongoDB: successfully connected');
});

失敗すると、予期したとおりにエラーが発生しますが、Node アプリは終了します。接続がエラーを返したときにノード アプリを実行し続けるにはどうすればよいですか?

長時間実行されるアプリケーションの Mongoose のベスト プラクティスの方向性を教えてもらえますか? Mongoose の接続再試行フラグがデフォルトで true に設定されていることは知っていますが、他に何をすればよいのでしょうか?

4

1 に答える 1

6

ちょっと面白い、あなたはこの質問をするべきだった。私はちょうど数分前にこれを書いていました。私はcoffeescriptバリアントを使用していますが、それがどのように見えるかは次のとおりです。私はまた、コンソールで素敵な色付きのフィードバックを得るためにcolors.jsを使用していますが、それ以外は、これは消えずにdbエラーをうまくキャッチするはずです。

はじめに、私は専門家ではないと言っておきましょう。数週間前にこれを取り上げ始めたばかりです。

mongoose = require "mongoose"
db_address = "localhost/nodesample-dev"

mongoose.connection.on "open", (ref) ->
  console.log "Connected to mongo server!".green

mongoose.connection.on "error", (err) ->
  console.log "Could not connect to mongo server!".yellow
  console.log err.message.red

try
  mongoose.connect("mongodb://#{db_address}")
  db = mongoose.connection
  console.log "Started connection on " + "mongodb://#{db_address}".cyan + ", waiting for it to open...".grey

catch err
  console.log "Setting up failed to connect to #{db_address}".red, err.message

ここにコンパイルされたJSがあります:

var db, db_address, mongoose;
mongoose = require("mongoose");
db_address = "localhost/nodesample-dev";

mongoose.connection.on("open", function(ref) {
  return console.log("Connected to mongo server!".green);
});

mongoose.connection.on("error", function(err) {
  console.log("Could not connect to mongo server!".yellow);
  return console.log(err.message.red);
});

try {
  mongoose.connect("mongodb://" + db_address);
  db = mongoose.connection;
  console.log("Started connection on " + ("mongodb://" + db_address).cyan + ", waiting for it to open...".grey);
} catch (err) {
  console.log(("Setting up failed to connect to " + db_address).red, err.message);
}
于 2012-12-27T04:39:31.233 に答える