NestJs MongooseによるMongoDB操作の方法
最近はNestJsという枠組みを学び始めました。学習コストは他のフレームよりかなり高いです。
その登録構成は比較的複雑です。勉強を始めたら、どことどこが分かりません。しかし、これは他のフレームよりも厳密な表現です。大型プロジェクトの安定と丈夫な使用を保証しました。
node基礎フレームExpressとKooaを勉強している時。データベースの操作は常にSQL文を作成するために行われています。何を書くべきですか?これはとても堅苦しくて融通がきかないです。NestJsはOOP思想プログラミング(NestJsはType Scriptを使ってもいいです。OOP思想です。)であることを知ってから、データベースに対する操作はオブジェクト形式で表現できると分かりました。データベース内の各テーブルは、Nestフレーム内のオブジェクトとして見なされます。このようにデータベースの操作に対してとても柔軟に見えます。
例えば:(これは任意のテーブルの構成です。)
NestJsに作成されたオブジェクトを見ることができます。
そうすると、データベースのテーブルごとの操作がとても簡単になります。
ここでは、リンクしたmongoDB操作を例に挙げます。
公式文書によるモングースの使用
まずインストールに必要な依存性です。
インストールが完了したら、私たちはap.module.tsに配置を追加します。
app.module.ts
imports:[]に対応する構成を追加します。
Deprecation Warning:current URL string parser is deprecated、and will be removed in a future version.To use the new parser、pass option{useNewUrlParser:true}to MongoClint.net
このように似た言葉です。リンクが成功したということです。
次に模型に注入する(Schema)
あなたの対応するモジュールフォルダにschemaフォルダを作成します。x.schema.tsを作成します
例えば私はusers/schemas/users.schema.tsです。
次に、対応するusers.module.tsモジュールに配置追加を行います。
service端=>users/users.service.ts
どのようにして調べてみますか?
ここの3001はmain.tsの中で自分で決めたのです。自分の都合で変更します。
そして私たちは訪問できます。
http://localhost:3001/users/getall
結果を得る
出力が完了しました。他の操作も同様の手順で行います。
ここで、NestJsがMongooseを使ってMongoDBを操作する方法についての記事を紹介します。NestJs操作MongoDBの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
その登録構成は比較的複雑です。勉強を始めたら、どことどこが分かりません。しかし、これは他のフレームよりも厳密な表現です。大型プロジェクトの安定と丈夫な使用を保証しました。
node基礎フレームExpressとKooaを勉強している時。データベースの操作は常にSQL文を作成するために行われています。何を書くべきですか?これはとても堅苦しくて融通がきかないです。NestJsはOOP思想プログラミング(NestJsはType Scriptを使ってもいいです。OOP思想です。)であることを知ってから、データベースに対する操作はオブジェクト形式で表現できると分かりました。データベース内の各テーブルは、Nestフレーム内のオブジェクトとして見なされます。このようにデータベースの操作に対してとても柔軟に見えます。
例えば:(これは任意のテーブルの構成です。)
NestJsに作成されたオブジェクトを見ることができます。
そうすると、データベースのテーブルごとの操作がとても簡単になります。
ここでは、リンクしたmongoDB操作を例に挙げます。
公式文書によるモングースの使用
まずインストールに必要な依存性です。
npm install --save @nestjs/mongoose mongoose
タオバオミラーを追加できます。
Cregistry=https://registry.npm.taobao.org
これはもうタクシーに慣れましたので、使いやすいです。ダウンロード速度は比較的速くなります。インストールが完了したら、私たちはap.module.tsに配置を追加します。
app.module.ts
imports:[]に対応する構成を追加します。
MongooseModule.forRoot(‘mongodb://localhost/test')
// MongoDB ( )
import { Module } from ‘@nestjs/common';
import { MongooseModule } from ‘@nestjs/mongoose';
この時保存してコンソールで見ることができます。Deprecation Warning:current URL string parser is deprecated、and will be removed in a future version.To use the new parser、pass option{useNewUrlParser:true}to MongoClint.net
このように似た言葉です。リンクが成功したということです。
次に模型に注入する(Schema)
あなたの対応するモジュールフォルダにschemaフォルダを作成します。x.schema.tsを作成します
例えば私はusers/schemas/users.schema.tsです。
import * as mongoose from 'mongoose'
export const UserSchema = new mongoose.Schema(
{
id: Number,
name: String,
introduction: String,
headurl: String,
bigurl: String,
username: String,
password: String,
},
{ collection: 'musicers', versionKey: false },
)
対応するのは上図の表構造(collection:MongoDBの中の一つの表とみなすことができる)です。次に、対応するusers.module.tsモジュールに配置追加を行います。
import { Module } from '@nestjs/common';
import { MongooseModule, getModelToken } from '@nestjs/mongoose';
import { UsersController } from './users.controller';
import { UsersService } from './services/users.service';
import { UserSchema } from './schemas/users.schemas';
@Module({
imports: [
// 。 ( 。 )
MongooseModule.forFeature([
{ name: 'User', schema: UserSchema }
])
],
controllers: [UsersController],
providers: [
UsersService,
],
})
export class UsersModule {}
このように配置したら。私たちはサービスで操作できます。service端=>users/users.service.ts
どのようにして調べてみますか?
import { Model } from 'mongoose';
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { User } from '../interface/users.interface';
import { IUserService } from '../interface/user-service.interface';
@Injectable()
export class UsersService implements IUserService {
constructor(@InjectModel('User') private readonly userModel: Model<User>) {}
private static users:User[] = [ ]
async findAll():Promise<User[]>{
//return UsersService.users
return await this.userModel.find({})
//( )
}
}
controller端=>users/users.co ntroller.ts
@Controller('users')
export class UsersController {
constructor(private readonly userservice: UsersService) { }
@Get('getall')
// @UseGuards(AuthGuard('jwt'))
async findAll():Promise<User[]> {
return await this.userservice.findAll()
}
}
私たちはインターフェースを作って出てきます。ここの3001はmain.tsの中で自分で決めたのです。自分の都合で変更します。
そして私たちは訪問できます。
http://localhost:3001/users/getall
結果を得る
出力が完了しました。他の操作も同様の手順で行います。
ここで、NestJsがMongooseを使ってMongoDBを操作する方法についての記事を紹介します。NestJs操作MongoDBの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。