非同期処理でMongoDBに接続し、Expressサーバーを起動する方法
以下に、非同期処理を用いてMongoDBに接続し、Expressサーバーを起動するコードの例を示します。
データベース接続関数
まず、connectDB.jsファイルを作成し、MongoDBに接続する関数を定義します。
// connectDB.js
const mongoose = require('mongoose');
const connectDB = async (url) => {
try {
await mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
console.log('DB接続成功');
} catch (error) {
console.error('DB接続エラー:', error);
}
};
module.exports = connectDB;
サーバー起動のためのコード
次に、app.jsファイルを作成し、データベース接続後にExpressサーバーを起動するコードを記述します。
// app.js
const express = require('express');
const connectDB = require('./connectDB'); // データベース接続関数をインポート
const app = express();
const port = 8000;
// データベース接続URL
const dbUrl = 'ライフガード';
const startServer = async () => {
try {
// データベースに接続
await connectDB(dbUrl);
// サーバーを起動
app.listen(port, () => {
console.log(`サーバーがポート${port}で起動しました`);
});
} catch (error) {
console.error('サーバー起動エラー:', error);
}
};
// サーバー起動関数を呼び出す
startServer();
非同期関数の定義:
asyncキーワードを使って非同期関数startServerを定義
データベース接続:
awaitキーワードを使って、非同期関数connectDBの完了を待ちます。
connectDB関数はMongoDBに接続し、接続成功または失敗のメッセージをコンソールに出力します。
サーバーの起動:
データベース接続が成功した後で、Expressサーバーを指定したポートで起動します。
サーバーが正常に起動すると、"サーバーがポート8000で起動しました"というメッセージがコンソールに表示されます。
エラーハンドリング:
try-catchブロックを使って、データベース接続やサーバー起動時のエラーをキャッチし、コンソールにエラーメッセージを表示します。