javascript - TypeError:使用 Passport.js 时无法读取未定义的属性“headersSent”
问题描述
应用程序.js
var adminRouter = require('./routes/adminportal/home');
app.use('/portal/admin', adminRouter)(passport);
module.exports = app;
护照.js
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;
主页.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。我做错了吗?我试图用谷歌搜索错误,但没有相关结果。任何帮助将不胜感激。
解决方案
护照参数应该与 require 函数而不是 app.use() 函数一起使用,因此您在 app.js 文件中的代码将是:
var adminRouter = require('./routes/adminportal/home')(passport);
app.use('/portal/admin', adminRouter);
module.exports = app;
推荐阅读
- c# - Ajax 回调问题
- angular - (Angular) 需要帮助在 IE 中下载 cvs 文件,它适用于 Chrome 和 Firefox
- reactjs - 如何解决“react-dnd-html5-backend”不包含默认导出?
- jupyter-notebook - 你好,当我运行我的代码时,我有这个错误模块'tensorflow'没有属性'get_default_graph'
- java - return' 字符和换行符与正则表达式 java 8 一起使用
- android - 错误类型 3 - 多个项目中不存在活动类
- python - 如何从具有条件的文件夹绝对名称创建键值
- javascript - 如何在数组中的项目数之间分配 100
- cadence-workflow - 在运行 cadence 时指定 cassandra 的端口用户名、密码和主机信息
- r - 将tex转换为docx时图形的Pandoc问题