首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NESTjs中使用猫鼬插件

在NESTjs中使用猫鼬插件
EN

Stack Overflow用户
提问于 2022-06-02 11:26:44
回答 1查看 202关注 0票数 0

我正在尝试在Nestjs项目中使用mongoose pagent-v2。我的模式如下:

代码语言:javascript
复制
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';

export type CarDocument = Car & Document;

import * as mongoosePaginate from 'mongoose-paginate-v2';

@Schema()
export class Car {
  @Prop({ required: true })
  id: number;

  @Prop({ required: true })
  brand: string;

  @Prop({ required: true })
  model: number;

  @Prop({ required: true })
  color: string;
}

export const CarSchema = SchemaFactory.createForClass(Car);

CarSchema.plugin(mongoosePaginate);

我的服务是这样的:

代码语言:javascript
复制
import { Injectable, HttpException } from '@nestjs/common';
import { Car, CarDocument } from './schemas/car.schema';
import { Model } from 'mongoose';

import { Cars } from './cars.mock';
import { InjectModel } from '@nestjs/mongoose';

export interface ICarInterface {
  id: number;
  brand: string;
  color: string;
  model: number;
}

@Injectable()
export class CarService {
  constructor(@InjectModel(Car.name) private carModel: Model<CarDocument>) {}
  private cars = Cars;
  public getCars(): Promise<any> {
    return this.carModel.paginate.
  }
}

这里我无法使用this.carModel.paginate,获得错误Property 'paginate' does not exist on type 'Model<CarDocument, {}, {}, {}>'

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-10 21:19:31

插件将方法添加到模型类型中,但是由于您仍然使用Model作为类型,所以TypeScript不知道它。在猫鼬-分页-v2类型中,它打开了mongoose模块并添加了一个新的接口PaginateModel。对于连接插件的模型,您将使用它而不仅仅是Model

代码语言:javascript
复制
import { PaginateModel } from 'mongoose';

@Injectable()
export class CarService {
  constructor(@InjectModel(Car.name) private carModel: PaginateModel<CarDocument>) {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72475497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档