npm install mongodb --save
でインストールされたネイティブドライバーを介してmongodbを接続するために、次のコードを記述しました
const MongoClient = require("mongodb").MongoClient;
const url = "mongodb://127.0.0.1:27017";
const dbName = "game-of-thrones";
let db;
MongoClient.connect(
url,
{ useNewUrlParser: true },
(err, client) => {
if (err) return console.log(err);
db = client.db(dbName);
console.log(`Connected MongoDB: ${url}`);
console.log(`Database: ${dbName}`);
}
);
端末に書き込むとnode server.js
になり、次のエラーが発生しました
(ノード:3500)DeprecationWarning:現在のサーバー検出および監視エンジンは非推奨であり、将来のバージョンでは削除される予定です。新しいサーバー検出および監視エンジンを使用するには、オプション{useUnifiedTopology:true}をMongoClient.connectに渡します。接続されたMongoDB:mongodb://127.0.0.1:27017データベース:game-of-thrones
データベースは接続されていますが、警告を回避するにはどうすればよいですか
これらすべてを試しました。以下のコードは「Finished」をすぐに示しています。エラーも結果もありません。しばらくすると、次のようになります。
Promise { <pending> }
the options [servers] is not supported
the options [caseTranslate] is not supported
the options [dbName] is not supported
the options [credentials] is not supported
Finished
(node:111766) UnhandledPromiseRejectionWarning: MongoTimeoutError: Server selection timed out after 30000 ms
コード(ユーザー名とパスワードは実際のデータに置き換えられます):
const url = 'mongodb://username:password@localhost:27017';
const MongoClient = require('mongodb').MongoClient;
const client = new MongoClient(url, {useUnifiedTopology: true});
client.connect().then((client)=>{
var db = client.db('MYDB');
console.log ('Retrieving data');
db.collection('products').find().toArray(function (err, result) {
if (err) throw err
console.log(result);
});
});
console.log('Finished');
私のpackage.jsonには次が含まれています:
"connect-mongo": "^3.2.0",
"mongodb": "^3.4.1"