我正在尝试在Nestjs项目中使用mongoose pagent-v2。我的模式如下:
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);我的服务是这样的:
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, {}, {}, {}>'
请帮帮忙。
发布于 2022-06-10 21:19:31
插件将方法添加到模型类型中,但是由于您仍然使用Model作为类型,所以TypeScript不知道它。在猫鼬-分页-v2类型中,它打开了mongoose模块并添加了一个新的接口PaginateModel。对于连接插件的模型,您将使用它而不仅仅是Model。
import { PaginateModel } from 'mongoose';
@Injectable()
export class CarService {
constructor(@InjectModel(Car.name) private carModel: PaginateModel<CarDocument>) {}https://stackoverflow.com/questions/72475497
复制相似问题