すべての回答にいくつかのビットが欠落しているため(キャッチブロック、クライアントがnull
ではないことを確認する )私は自分の解決策を思いついた。 Mongoサーバーv4.0.7とNodeJSドライバー3.2.2でテスト済み。
この例はコンソールプログラムであり、finally
でサーバーへの接続を閉じていることに注意してください。 ブロック。 Webアプリケーションでは、接続が再利用されます。NodeMongoのドキュメントを参照してください。また、エラーはWinstonやMorganなどのライブラリに記録され、コンソールには記録されません。
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
async function findOne() {
const client = await MongoClient.connect(url, { useNewUrlParser: true })
.catch(err => { console.log(err); });
if (!client) {
return;
}
try {
const db = client.db("testdb");
let collection = db.collection('cars');
let query = { name: 'Volkswagen' }
let res = await collection.findOne(query);
console.log(res);
} catch (err) {
console.log(err);
} finally {
client.close();
}
}
await findOne();