javascript - TypeScript 的 Mongoose loadClass 问题
问题描述
我正在利用猫鼬类模式。
并为我的 Node 项目使用 TypeScript。
我遵循Mongoose 的 Typescript 方式......?确保我的模型知道我定义的模式,所以我有自动完成等。
然而,模式类变得更加棘手。正如他们的文档中所写:
loadClass() 函数允许你从 ES6 类中引入方法、静态和虚拟。类方法映射到模式方法,静态方法映射到模式静态,getter/setter 映射到虚拟。
所以我的代码看起来像:
interface IUser extends mongoose.Document {
firstName: string,
lastName: string
};
const userSchema = new mongoose.Schema({
firstName: {type:String, required: true},
lastName: {type:String, required: true},
});
class UserClass{
static allUsersStartingWithLetter(letter: string){
return this.find({...});
}
fullName(this: IUser){
return `${this.firstName} ${this.lastName}`
}
}
userSchema.loadClass(UserClass);
const User = mongoose.model<IUser>('User', userSchema);
export default User;
我的目标是 TypeScript 能够理解:
User
有方法allUsersStartingWithLetter
User
实例有一个方法fullName
在当前配置中它没有。我自己无法完成。
解决方案
您UserClass
需要Model
从mongoose
. 您似乎缺少一些必需的代码来使这项工作为您服务。
从您作为参考共享的链接中,这里有一个指南,应该可以通过完整的代码示例解决您的问题。
推荐阅读
- node.js - Node.JS 异步函数永远运行没有结果
- java - 具有动态属性名称的 Java 中的 JSON 反序列化
- laravel - 删除雄辩的关系laravel
- spring-boot - gradle - spring boot 无法识别 - 无法为任务“:bootJar”设置未知属性“archiveFileName”
- c++ - FFmpeg 从 H264 比特流中解析 NAL
- javascript - 从外部页面打开引导模式(在它所在的页面上)
- r - 在 GraphPad Prism 中使用 R 样式数据
- go - 如何使用加密/rc4
- html - 如何在谷歌工作表侧边栏插件中添加超链接到单元格
- ruby-on-rails - 有轨道保存的 mongoid 替代品(触摸:假)