栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Typescript猫鼬静态模型方法“类型上不存在属性”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Typescript猫鼬静态模型方法“类型上不存在属性”

我认为您遇到了我刚刚遇到的同样问题。您可以拨打此电话。几个教程让您

.comparePassword()
从这样的模型中调用方法。

User.comparePassword(candidate, cb...)

这是行不通的,因为该方法位于上,

schema
而不位于上
model
。我能够调用该方法的唯一方法是使用标准的mongoose /
mongo查询方法找到该模型的实例。

这是我的护照中间件的相关部分:

passport.use(  new LocalStrategy({    usernameField: 'email'  },    function (email: string, password: string, done: any) {      User.findOne({ email: email }, function (err: Error, user: IUserModel) {        if (err) throw err;        if (!user) return done(null, false, { msg: 'unknown User' });        user.schema.methods.comparePassword(password, user.password, function (error: Error, isMatch: boolean) {          if (error) throw error;          if (!isMatch) return done(null, false, { msg: 'Invalid password' });          else { console.log('it was a match'); // lost my $HÏT when I saw it return done(null, user);          }        })      })    }));

因此,我曾经

findOne({})
获取文档实例,然后不得不通过深入研究文档上的架构属性来访问架构方法
user.schema.methods.comparePassword

我注意到了几个区别:

  1. 我的是
    instance
    方法,而你的是
    static
    方法。我相信会有类似的方法访问策略。
  2. 我发现我必须将哈希传递给
    comparePassword()
    函数。也许这对静态变量不是必需的,但是我无法访问
    this.password


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484923.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号