护照mongoose对象#<架构>没有方法“身份validation”,但我可以看到的方法

我遇到了一个没有道理的问题,无法弄清楚希望有人能够提供帮助。

我正在使用几个mongoose插件,现在正试图整合护照。 我已经添加了如下所示的passport-local-mongoose插件,但是我收到了该方法不存在的错误。 将模式logging到控制台时,我可以看到列出的方法,所以我不确定它为什么不存在。

代码示例:

var mongoose = require('mongoose'); var timestamps = require('mongoose-timestamp'); var autoIncrement = require('mongoose-auto-increment'); var passport = require('passport'); var passportLocalMongoose = require('passport-local-mongoose'); var BasicStrategy = require('passport-http').BasicStrategy; var usersSchema = new mongoose.Schema({ firstName: String, lastName: String, email: String, organizationId: Number, description: String }); module.exports = function(app,db){ //mongoose setup options usersSchema.plugin(timestamps); usersSchema.plugin(autoIncrement.plugin, { model: 'Users', field: 'id' }); //passport authentication setup usersSchema.plugin(passportLocalMongoose); var Users = db.model('Users', usersSchema); console.log(usersSchema); passport.use(new BasicStrategy(usersSchema.authenticate())); 

控制台日志摘录如下:

 methods: { nextCount: [Function], resetCount: [Function], setPassword: [Function], authenticate: [Function] }, statics: { nextCount: [Function], resetCount: [Function], authenticate: [Function], serializeUser: [Function], deserializeUser: [Function], register: [Function], findByUsername: [Function], createStrategy: [Function] }, 

但是我收到以下错误:

 passport.use(new BasicStrategy(usersSchema.authenticate())); ^ TypeError: Object #<Schema> has no method 'authenticate' 

我可以看到该方法是可用的,所以为什么我无法访问它。 我很抱歉,如果我错过了一些基本的东西,我仍然在学习一些这些东西。 感谢您的帮助。

validation方法在模型上定义,而不是在模式上定义 –

 passport.user(new BasicStrategy(Users.authenticate());