Javascript 护照猫鼬对象#<;模式>;没有方法';验证';然而,我可以看到这种方法
我遇到了一个毫无意义的问题,我不知道希望有人能帮助我 我正在使用一些mongoose插件,现在也在尝试集成passport。我已经添加了passport本地mongoose插件,如下所示,但我得到的错误是该方法不存在。当将模式注销到控制台时,我可以看到列出的方法,因此我不确定它为什么不存在 代码示例:Javascript 护照猫鼬对象#<;模式>;没有方法';验证';然而,我可以看到这种方法,javascript,node.js,mongodb,mongoose,mongoose-plugins,Javascript,Node.js,Mongodb,Mongoose,Mongoose Plugins,我遇到了一个毫无意义的问题,我不知道希望有人能帮助我 我正在使用一些mongoose插件,现在也在尝试集成passport。我已经添加了passport本地mongoose插件,如下所示,但我得到的错误是该方法不存在。当将模式注销到控制台时,我可以看到列出的方法,因此我不确定它为什么不存在 代码示例: var mongoose = require('mongoose'); var timestamps = require('mongoose-timestamp'); var autoIncrem
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'
passport.use(新的基本策略(usersSchema.authenticate());
^
TypeError:对象#没有“身份验证”方法
我可以看到这个方法是可用的,为什么我不能访问它呢。我很抱歉,如果我错过了一些基本的东西,我仍然在学习这些东西。感谢您的帮助。验证方法是在模型上定义的,而不是在架构上定义的-
passport.user(new BasicStrategy(Users.authenticate());
我建议您使用节点检查器来检查节点中的请求流。会让你更深入地了解事物是如何运作的。