2017-03-17 3 views
0

J'ai un problème en utilisant paginate dans mon contrôleur après avoir ajouté le plugin à mon schéma, mon code est écrit en TypeScript 2.1, j'ai installé @ types/mongoose-paginate dans devdependencies. [Ts] gravité: Message 'Erreur': 'Propriété' paginate 'n'existe pas sur le type' Modèle '.'Erreur d'appel de 'paginate' après l'importation du schéma

Mon contrôleur:

export function getAllArtists(req, res) { 
Artist.paginate({}, { page: 3, limit: 10 }, function(err, result) { 
    // ... 
    // ... 
}); 

Mon schéma:

'use strict' 
import {Document, model, Model, Schema} from 'mongoose'; 
import * as mongoosePaginate from 'mongoose-paginate'; 

interface IArtist extends Document { 
    name: String; 
    description: String; 
    image: String; 
} 

const ArtistSchema: Schema = new Schema({ 
    name: String, 
    description: String, 
    image: String 
}); 

ArtistSchema.plugin(mongoosePaginate); 

export const ArtistModel: Model<IArtist> = model<IArtist>('Artist', ArtistSchema); 

Merci,

Répondre

0

La solution est une interface avec notamment l'extension PaginateModel à mon schéma.

'use strict' 

import { PaginateModel, Document, Schema, model } from 'mongoose'; 
import * as mongoosePaginate from 'mongoose-paginate'; 

interface IArtist extends Document { 
    name: String; 
    description: String; 
    image: String; 
} 

const ArtistSchema: Schema = new Schema({ 
    name: String, 
    description: String, 
    image: String 
}); 

ArtistSchema.plugin(mongoosePaginate); 

interface ArtistModel<T extends Document> extends PaginateModel<T> {} 

export const ArtistModel: ArtistModel<IArtist> = model<IArtist>('Artist', ArtistSchema);