NestJSとMongoDB(feat.環境変数とMongose)の接続
3880 ワード
NestはSQL、NoSQLのすべてのデータベースと統合できます.しかしnodejsだけはNoSQLのMongoDBをよく使う.MongoDBはJSONのようなBSONオブジェクトとしてデータを格納します.これは、MongoDBのODMで最も有名なMongooseがnodejs上で働いているためかもしれません.MongoDBはアカウント作成のみで利用したことはありませんが、ちなみに(?)NoSQLを使用してMongoDBに接続するには
ODMはObject Documentマッピングの略です.オブジェクトとドキュメントを1対1で一致させることを意味します.ObjectはJavaScriptのオブジェクト、Documentはモンゴメリーのドキュメントです.ODBは、DBでドキュメントを照会すると、JavaScriptオブジェクトにドキュメントを置き換えます.そしてモンゴルのデジタルテレビのODMとして最もよく使われているのがモンゴルです.🐭
モンゴディビー クリック画像をコピーするuri
しかし、URIをコピーして
環境変数を設定するには、個別のインストールとインポートが必要です.(公式ホームページTECHNIQUESの構成を参照)
生URIを含む
完成したコードから見ると、以下のようになります.
開発時にモンゴルの照会を記録することができます.
ただし、本番導入時にログは必要ありません.環境変数を使用して、開発モデルと生産モデルを区別します.
再び
に感銘を与える
位置決めを整理するとともに,環境変数の使用理由を理解できる.暴露できない重要な情報を環境変数に入れる.
モンゴデビを接続する場合、モンゴス検索を表示する設定は
ODM?
ODMはObject Documentマッピングの略です.オブジェクトとドキュメントを1対1で一致させることを意味します.ObjectはJavaScriptのオブジェクト、Documentはモンゴメリーのドキュメントです.ODBは、DBでドキュメントを照会すると、JavaScriptオブジェクトにドキュメントを置き換えます.そしてモンゴルのデジタルテレビのODMとして最もよく使われているのがモンゴルです.🐭
🧀 モンゴルインストールとモンゴルDB接続
npm install --save @nestjs/mongoose mongoose
⁝
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [CatsModule, MongooseModule.forRoot('몽고디비URI')],
⁝
インストールが完了したら、モンゴル語モジュールをapp.module
にインポートし、モンゴル語ディビURIを追加します.URIを取得する方法は次のとおりです.cluster
アクセスconnect
クリックボタンConnect your application
ボタン🧀 環境変数の設定
しかし、URIをコピーして
MongooseModule.forRoot('몽고디비URI')
に貼り付けると、URIは生成されたアドレスに露出する.URIは露出を防止しなければならないので,環境変数を設定する必要がある.環境変数を設定するには、個別のインストールとインポートが必要です.(公式ホームページTECHNIQUESの構成を参照)
$ npm i --save @nestjs/config
⁝
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ ConfigModule.forRoot(), MongooseModule.forRoot('몽고디비URI')]
⁝
インストールとインポートが完了したら、環境変数管理ファイル.env
を使用できます..env
ファイルは、プロジェクトフォルダの最上位ルートディレクトリに作成できます.先ほどコピーしたモンゴディヴィURI値を生成したファイルにMONGODB_URI = "복사했던 몽고디비 URI 값"
として保存します.生URIを含む
app.module
ファイルのMongooseModule.forRoot('몽고디비URI')
中'몽고디비URI'
部分をprocess.env.MONGODB_URI
に変更します.1番目のパラメータの設定が完了すると、2番目のパラメータが追加されます.完成したコードから見ると、以下のようになります.
⁝
@Module({
imports: [
ConfigModule.forRoot(),
MongooseModule.forRoot(process.env.MONGODB_URI, {
useNewUrlParser: true, // 몽구스에서 필요로 하는 두 번째 인자 -1
useUnifiedTopology: true, // 몽구스에서 필요로 하는 두 번째 인자 -2
}),
CatsModule,
],
controllers: [AppController],
providers: [AppService],
})
⁝
モンゴディビURIのほか、ポート番号などを環境変数に入れて管理することもできます.main
で使用するポート番号を.env
に設定してみます.async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalFilters(new HttpExceptionFilter());
const PORT = process.env.PORT; // .env에 저장된 포트 넘버
await app.listen(PORT);
}
🧀 コンソールの蒙昧クエリー出力の設定
開発時にモンゴルの照会を記録することができます.
app.module
ファイルでは、モンゴルをimport * as mongoose from 'mongoose';
にインポートします.次に、AppModuleクラスからエクスポートされたコードmongoose.set('debug', true)
を記述する.これでクエリーが記録されます.ただし、本番導入時にログは必要ありません.環境変数を使用して、開発モデルと生産モデルを区別します.
.env
にはMODE = 'dev'
に区切られたコードが記述されている.再び
app.module
に移動し、3つの条件演算子を使用して、processe.env.MODE
が「dev」の場合にのみログが撮影されることを確認します.完了したクラスコードと印刷のクエリーを以下に示します.export class AppModule implements NestModule {
private readonly idDev: boolean = process.env.MODE === 'dev' ? true : false;
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes('*');
mongoose.set('debug', this.idDev);
}
}
// 찍힌 쿼리 적기
開発時true
,そうでなければfalse
はクエリーできません.に感銘を与える
位置決めを整理するとともに,環境変数の使用理由を理解できる.暴露できない重要な情報を環境変数に入れる.
モンゴデビを接続する場合、モンゴス検索を表示する設定は
app.module
に関連しています..env
で環境変数を設定し、app.module
に移動します.Reference
この問題について(NestJSとMongoDB(feat.環境変数とMongose)の接続), 我々は、より多くの情報をここで見つけました https://velog.io/@bin-lee/NestJS와-MongoDB-연결하기-feat.-환경변수와-Mongooseテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol