【发布时间】:2019-03-22 05:09:14
【问题描述】:
我想使用 query helper api 定义自定义查询助手。 这里是例子:
// models/article.ts
import { Document, Schema, Model, model } from 'mongoose';
interface IArticle extends Document {
name: string;
}
interface IArticleModel extends Model<IArticle> {
someStaticMethod(): Promise<any>;
}
const ArticleSchema = new Schema( { name: String } )
ArticleSchema.query.byName = function(name) {
return this.find({ name })
}
export default model<IArticle, IArticleModel>('Article', ArticleSchema);
// routes/article.ts
import ArticleModel from '../models/article.ts'
router.get('/articles, (req, res) => {
ArticleModel.find().byName('example')
})
当我使用默认值链接时,Typescript 抱怨 byName 方法。
我可以将它放在IArticleModel 接口中,但在这种情况下,我只能从模型中调用它。
我应该把这个方法的定义放在哪里才能以可链接的方式使用它?
【问题讨论】:
-
好像应该是
AnimalInstance.find()而不是AnimalSchema.find -
@ExplosionPills 谢谢。我的错误我更新了问题
-
看起来
@types/mongoose声明需要进行重大更改以支持自定义查询助手。我正在努力。
标签: javascript mongodb typescript mongoose