[英]passport.js + express: TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
I use pasport.js + Express.js and got error 我使用pasport.js + Express.js并收到错误
TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
with this code 用这个代码
passport/local.js 护照/ local.js
var LocalStrategy = require("passport-local").Strategy;
var models = require("../../models");
module.exports = new LocalStrategy(
function(username,password,done){
models.User.findOne(
{
where:{username:username}
},function(err,user){
if(err){return done(err);}
if(!user){return done(null,false,{message:"no such user"});}
if(!user.validPassword(password)){return done(null,false,{message:"invalid password"});}
return done(null,user);
}
);
}
);
passport.js passport.js
var passport = require("passport");
var models = require("../models");
var local = require("./passport/local");
module.exports = () => {
passport.serializeUser((user,done) => {
done(null,user.id);
});
passport.deserializeUser((id,done) => {
models.User.findOne({
where:{id:id}
}).then(user => {
done(null,user);
}).catch(err => {
done(err,null);
});
});
console.log(typeof(local));
passport.use(local);
}
console.log(typeof(local)); 的console.log(typeof运算(本地)); return "object".
返回“对象”。 but passport.use() need function?
但是passport.use()需要功能吗?
How can i solve this? 我该如何解决?
Usually this error comes from a missing export in one of the files that declares your routes. 通常,此错误是由于在声明您的路线的文件之一中缺少导出而引起的。 Please double check these files.
请仔细检查这些文件。
Also I checked and the code above works as it is. 我也检查了上面的代码,按原样工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.