2017-03-17 7 views
0

プラグインをスキーマに追加した後、コントローラでpaginateを使用する際に問題が発生しました。プラグイン内でスキーマをインポートした後に 'paginate'を呼び出す際にエラーが発生しました

[ts]重大度: 'エラー'メッセージ: 'プロパティ'ページング 'がタイプ'モデル 'にありません。'

マイコントローラー:

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

マイスキーマ:

'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); 

おかげで、

答えて

0

ソリューションは、私のスキーマにPaginateModelを延長するとのインタフェースが含まれています。

'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); 
関連する問題