私は意味をなさない問題に遭遇しており、誰かが助けてくれることを望んでいます。
私はいくつかのマングース プラグインを使用しており、現在はパスポートも統合しようとしています。以下に示すように、passport-local-mongoose プラグインを追加しましたが、メソッドが存在しないというエラーが発生します。スキーマをコンソールにログアウトすると、メソッドが一覧表示されるので、メソッドが存在しない理由がわかりません。
コードサンプル:
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'
メソッドが利用可能であることがわかりますが、なぜアクセスできないのでしょうか。基本的なことが抜けている場合は申し訳ありませんが、これらのことのいくつかはまだ学んでいます。ご協力ありがとうございます。