MongoDBをNode.jsから起動して、毎回手動で行う手間を省いていますが、どのような方法を使用するのが最適かは不明ですその問題に関しては、それをどのように組み込むか、したがってジレンマである。Node.jsからMongoDBを起動して接続する
私は、このコードが動作しない(ECONNREFUSED)理由は、mongod.exeに起動するのに十分な時間が与えられていないと考えています。真実ならば、これを取り巻く最善の方法は何でしょうか?ある種のループ?何とかDBの状態を確認していますか?同期タイマーのいくつかの並べ替え?
理想的には、MongoDBが起動していないかどうか、MongoDBが起動していないかどうか、まず起動して何か他の操作を試みた後で接続するのが理想的です。これは私にとって良い計画のように聞こえるが、幸いなことに私はどこから始めるべきか分からない。
私は本当にコーディングが新しく、私はおそらく私の目標に少し野心的です...もし何か間違っていたら、私に教えてください。
const express = require('express');
const bodyParser= require('body-parser');
const app = express();
const MongoClient = require('mongodb').MongoClient
const execFile = require('child_process').execFile;
app.use(bodyParser.urlencoded({extended: true}))
var db
execFile("C:/Program Files/MongoDB/Server/3.2/bin/mongod.exe", ['--version'], (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
MongoClient.connect('mongodb://localhost:27017/db', (err, database) => {
if (err) return console.log(err)
db = database
app.listen(3000, function() {
console.log('listening on 3000')
})
})
ああ! '--version'パラメータを削除するだけで動作しました!私はパラメータがちょうどコンソールに何か追加の情報を表示したと思っていました。 – Dimitto
MongoDBが既に実行されているかどうか確認する価値があるかどうかは分かりますか? – Dimitto
はい、確かに可能です。上記のコードは、まずdbを実行してから接続するようにしています。 –