[英]TypeError: Cannot read property 'headersSent' of undefined when using Passport.js
app.js
var adminRouter = require('./routes/adminportal/home');
app.use('/portal/admin', adminRouter)(passport);
module.exports = app;
護照
var LocalStrategy = require('passport-local').Strategy;
var mysql = require('mysql');
var dbconfig = require('../routes/db.js');
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
db(function(err,conn){
conn.query("SELECT * FROM admin WHERE id = ? ",[id], function(err, rows){
done(err, rows[0]);
});
})
});
passport.use(
'local-login',
new LocalStrategy({
usernameField : 'user_name',
passwordField : 'password',
passReqToCallback : true
},
function(req, username, password, done) {
db(function(err,conn){
conn.query("SELECT * FROM admins WHERE email_address = ?",[username], function(err, rows){
if (err)
return done(err);
if (!rows.length) {
return done(null, false, req.flash('loginMessage', 'bulunamadi.'));
}
if (password != rows[0].password)
return done(null, false, req.flash('loginMessage', 'yanlis parola.'));
return done(null, rows[0]);
})
})
})
);
module.exports = passport;
home.js
module.exports = function(passport){
/* GET home page. */
router.get('/', function(req, res, next) {
if(req.session.userId != null){
message = '';
//res.render('dashboard',{message:message});
res.render("adminportal/login.ejs");
}else{
var message = '';
var sess = req.session;
res.render('adminportal/login.ejs',{message:message});
}
});
return router;
}
因此,每當我嘗試運行localhost5000:/portal/admin
它都會返回以下錯誤: TypeError: Cannot read property 'headersSent' of undefined
我被困住了,試圖嘗試實施長達數小時的passport.js,這是我第一次設置Passport.js。 我做錯了嗎? 我試圖用Google搜索該錯誤,但沒有相關結果。 任何幫助將不勝感激。
護照參數應與require函數一起使用,而不是app.use()函數,這樣app.js文件中的代碼將為:
var adminRouter = require('./routes/adminportal/home')(passport); app.use('/portal/admin', adminRouter); module.exports = app;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.