[英]With Node.js, how can I redirect random string paths to the home page?
[英]How can i redirect user to their specific page In node js
基本上我想將用戶重定向到他們的頁面。
如果是用戶,它應該重定向到用戶的菜單,如果是員工,它應該重定向到員工的菜單。
當我嘗試登錄時,它顯示已登錄,但它true
登錄頁面上並引發錯誤,如下所示 -
Customer and employee undefined Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
登錄.js
router.post("/login", function (req, res, next) {
passport.authenticate("local", function (err, user, info) {
if (err) {
return next(err);
}
if (!user) {
console.log("email password");
return res.redirect("/login");
}
req.logIn(user, function (err) {
if (err) {
return next(err);
}
req.session.isLoggedIn = true;
req.session.user = user;
req.session.save((err) => {
console.log(err);
if (req.isAuthenticated()) {
if (req.session.isLoggedIn === true) {
let customer = User.find(user.email);
let employee = Employee.find(user.email);
if (employee) {
res.render("employeeMenu");
}
if (customer) {
res.render("clientMenu");
}
}
return res.render("index");
}
console.log("user not exist");
return res.redirect("/login");
});
});
})(req, res, next);
});
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
req.isLogged = true;
return next();
} else {
req.isLogged = false;
return next();
}
}
用戶 Model
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const userSchema = new Schema({
firstName:{
type:String,
required:true
},
lastName:{
type:String,
required:true
},
email:{
type:String,
required:true,
unique:true
},
password:{
type:String,
required:true,
}
})
Users = mongoose.model('User', userSchema)
module.exports = Users
員工 Model
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const employeeSchema = new Schema({
First_name:{
type: String,
required:true
},
Last_name:{
type:String,
required:true
},
email:{
type:String,
required:true,
unique:true,
},
contactNo:{
type:Number,
required:true,
unique:true
},
password:{
type:String,
required:true,
},
joined:{
type:Date,
default:Date.now
}
})
Employee = mongoose.model('Employee', employeeSchema)
module.exports = Employee
您想編寫中間件,而不是路由處理程序。 所以,
app.use(function(req, res, next) { if (req.session.user == null){ // if user is not logged-in redirect back to login page // res.redirect('/'); } else{ next(); } });
而且正如錯誤提示的那樣,您還沒有在數據庫模式中創建customer and employee
字段或列。 因此,創建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.