Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

青灯夜游
リリース: 2022-01-26 17:52:28
転載
3865 人が閲覧しました

Nest.js を使用して

node の MongoDB データベースに接続するにはどうすればよいですか?次の記事では、ノードフレームワーク Nest.js が MongoDB をどのように利用しているかを紹介しますので、ご参考になれば幸いです。

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

Nest をデータベースに接続する方法を学習するとき、必ずデータベースの選択という問題に遭遇します。ここでは、著者は簡単な手順を記録するために MongoDB を選択しました。使用。さまざまなニーズに応じて、適切なデータベースを選択できます。

更なる学習を促進するためにフォローアップ ドキュメントを投稿Nest 中国語ドキュメント,MongoDB 初心者チュートリアル


#データベースの概要

  • MongoDB は、分散ファイル ストレージに基づくデータベースです。 C言語で書かれています。 WEB アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供するように設計されています。

  • MongoDB は、リレーショナル データベースと非リレーショナル データベースの中間の製品であり、非リレーショナル データベースの中で最も機能が豊富で、最もリレーショナル データベースに似ています。

データベースの選択

  • 市場には、誰もが選択できる成熟したデータベースが多数あります。

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • さまざまな資料によると、著者は大規模プロジェクトには PostgreSql を使用し、小規模プロジェクトには を使用する必要があると結論付けました。 MongoDB ということで、筆者も一緒に学んでいきますが、今回はスキルを磨くために小さなプロジェクトをやりたいので、まずは MongoDB を使って様子を見ていきます。
  • 異なる意見がある場合は、コメント欄でお気軽に議論してください。

基本サービスの構成

  • コンピュータにインストールされていることを確認してくださいMongoDB No

  • 覚えておいてください 環境設定が完了したら、起動後に自動的に開始することもできますが、自分で開始することもできます。

  • #. 簡単に紹介しますと、
Mongoose

MongoDB
  • # を操作する Nodejs ドライバー ライブラリです。 #MongoDB はデータベース、Nodejs

    は js の実行環境です。
  • Nodejs
  • Mongodb を直接操作しません。インターフェイスを提供するには、対応するドライバーが必要になります。 Nest プロジェクトに依存関係をインストールします。インストール方法は 2 つあります。自分で選択してください。

     $ npm install --save @nestjs/mongoose mongoose  // NPM 安装
     $ yarn add @nestjs/mongoose mongoose  // YARN 安装复制代码
    ログイン後にコピー
    インストールが完了したら、これを AppModule ファイルに導入します。見てみましょう
  •  /* app.module.ts */
    import { Module } from '@nestjs/common';
    import { AppController } from './app.controller';
    import { AppService } from './app.service';
    // 我自己准备的 USER 模块
    import { UserModule } from './user/user.module';
    // 引入 Mongoose 
    import { MongooseModule } from '@nestjs/mongoose';
    @Module({
      // 用 forRoot 方法连接数据库
      imports: [UserModule, MongooseModule.forRoot('mongodb://localhost/test')],
      controllers: [AppController],
      providers: [AppService],
    })
    export class AppModule {}
    ログイン後にコピー
  • 基本機能モジュール
  • ここでは、ユーザー モジュールがデモに使用されています

ここで私が理解している基本的な機能モジュールには、
    module
  • (モジュール)

    Controller

    (コントローラー)
  • Service
  • (プロバイダー)

    スキーマが含まれます(データモデル) Nest は主に MongoDB の追加、削除、変更、確認に使用しますが、現時点ではこれらのモジュールで十分です。 これらのモジュールについて簡単に紹介します。

  • というのも、
  • mongoose
上で app.module.ts のルート モジュールを導入しました。それでは、機能モジュールがどのようなものかを見てみましょう

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

    Schema
  • Mongoose

    では、すべては
  • Scheme
から発生し、各

Schema

    MongoDB## にマップされます # コレクションと定義コレクション内のドキュメントの構造。
  • Schema

    はモデルの定義に使用され、モデルは最下層の MongoDB ドキュメントの作成と読み取りを担当します。 スキーマ NestJS の組み込みデコレータを使用して作成することも、自分で使用することもできます Mongoose

    通常の方法
  • 。デコレータを使用して
  • Schema

    を作成すると、参照が大幅に削減され、コードの可読性が向上します。ここの筆者は公式推奨のデコレータで作成する方法を使っていますが、結局のところNestを使っているので特別なものは使えないんですね、うーん。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;"> /* user.schema.ts */ import { Prop, Schema, SchemaFactory } from &amp;#39;@nestjs/mongoose&amp;#39;; // @Prop 装饰器接受一个可选的参数,通过这个,你可以指示这个属性是否是必须的,是否需要默认值,或者是标记它作为一个常量,下面是例子 // SchemaFactory 是 mongoose 内置的一个方法做用是读取模式文档 并创建 Schema 对象 import { Document } from &amp;#39;mongoose&amp;#39;; export type UserDocument = User &amp; Document; @Schema() export class User extends Document { @Prop() name: string; // 设置值为必填 @Prop({ required: true }) age: number; @Prop() height: number; } export const UserSchema = SchemaFactory.createForClass(User);</pre><div class="contentsignin">ログイン後にコピー</div></div>モジュールでは後ほど他の機能とともに紹介します。

Service

Controller

Moudle

接口检验

  • 处理这些配置我们还在 main.ts 文件中配置了全局路由 app.setGlobalPrefix('api'); 意思就是所有请求前面会有一个 /api/
  • 这里我们用的 PostManMongoDB Compass 官方推荐的可视化工具查看效果

POST 增

  • 这里我使用 POST 请求,路由为/api/user/createUser 因为要限制请求参数的数据类型所以这里方式为 application/json

  • 因为这里我们之前定义的 User 数据模型为 name,age,height, 所以请求里面只需要这几个参数即可,别的就算写进去也添加不到集合中

  • Postman

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 打开 MongoDB Compass 查看数据

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 可以看到我们已经添加到数据库中一条数据,接下来我们在添加两条,方便等会的查询/删除/更改操作

GET 查所有

  • 这里我使用 GET 请求,,路由为/api/user/findAll 因为这里是查 User 集合内所有数据,所以不用添加请求参数

  • Postman

    Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 打开 MongoDB Compass 查看数据

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 可以看到我们已经查询到数据库中刚才在 User 集合中添加的三条数据切记要点 REFRESH 建不然软件不会自己刷新

GET 查单个用户

  • 这里我使用 GET 请求,路由为/api/user/findOne 因为这里是查 User 集合内对应搜索条件的数据集合,这里我们用的是name 去查询的。也可以用唯一值 id 去查询。

  • Postman

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

PUT 改

  • 这里我使用 PUT 请求,路由为/api/user/:sid 因为要限制请求参数的数据类型所以这里方式为 application/json

  • 因为这里我们之前定义的 User 数据模型为 age,height, 所以请求里面只需要这几个参数即可,别的就算写进去也添加不到集合中,我们这里传入数据库中小明的_id 61eea1b4144ea374a5b8455a 传入 Param 中 ,然后把要修改的内容放入 Body  中

  • Postman

    Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 打开 MongoDB Compass 查看数据

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • 可以看到我们已经把小明的年龄与身高做了修改

DELETE 刪除

  • 這裡我使用DELETE 請求,路由為/api/user/:sid#因為要限制請求參數的資料型別所以這裡方式為application/json

  • #我們這裡傳入資料庫中小明的_id 61eea1b4144ea374a5b8455a傳入Param 中,並發起請求

  • Postman

Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • ##開啟MongoDB Compass 查看資料

1Nest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょう

  • #可以看到小明的資訊已經不存在了

總結

更多node相關知識,請造訪:

nodejs 教學

以上がNest.js を使用してノード内の MongoDB データベースに接続する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート