![](/img/trans.png)
[英]Passport.js throwing “undefined is not a function” with LocalStrategy
[英]Passport.js .authenticate() throwing TypeError: undefined is not a function
我是通行證的新手(並且通常是結點),並且一直在使用本教程( http://mherman.org/blog/2015/01/31/local-authentication-with-passport-and-express-4/# .VczPbTBViko )將護照身份驗證添加到較大的Web應用程序。 我認為我一直在正確地進行操作,但是在終端中啟動應用程序時,出現以下錯誤。
passport.use(new LocalStrategy(Admin.authenticate()));
^
TypeError: undefined is not a function
at Object.<anonymous> (/Users/goldru/design-data/app.js:37:38)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/goldru/design-data/bin/www:7:11)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
我檢查了package.json,所有相關的庫似乎都已安裝。
這是相關的代碼。
來自app.js:
//connect to db; require models
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/design-data-test');
var Test = require('./models/Tests');
var Question = require('./models/Question');
var User = require('./models/User');
var Option = require('./models/Option');
var Admin = require('./models/Admin');
//require passport
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var routes = require('./routes/index');
var express = require('express');
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//passport setup
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
//config admin
var Admin = require('./models/Admin');
passport.use(new LocalStrategy(Admin.authenticate()));
passport.serializeUser(Admin.serializeUser());
passport.deserializeUser(Admin.deserializeUser());
admin.js:
var mongoose = require('mongoose');
var passportLocalMongoose = require('passport-local-mongoose')
var AdminSchema = new mongoose.Schema({
username: String,
password: String
});
AdminSchema.plugin(passportLocalMongoose);
module.export = mongoose.model('Admin', AdminSchema);
這是一個錯字。 你必須使用module.exports
而不是module.export
在admin.js。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.