我为我的雇员表创建了一个外键,但是我面临着获取特定用户信息的问题,它仅显示雇员表的第一条记录。我只想获取已登录的用户信息。但是它不显示已登录用户的信息。
员工模式:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
let EmployeeSchema = new Schema({
user_Id:{
type:mongoose.Schema.Types.ObjectID,
ref:'User'
},
Contact_No:{
type : Number,
unique : true,
required : true
},
Address:{
type : String,
required : true
},
})
Employee = mongoose.model('Employee', EmployeeSchema)
module.exports = Employee
Login.js
router.post('/login', function (req, res, next) {
passport.authenticate("local" , function (err, user, info) {
if(err) {
return next(err)
}
if(!user){
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()){
console.log()
return res.redirect('/menu')
}else{
console.log('user not exist')
return res.redirect('/')
}
})
})
})(req, res, next)
})
EmployeeInfo.js
const express = require('express')
const router = express.Router()
const User = require('../model/auth_user')
const Employee = require('../model/employee')
router.get('/employee_info', function (req, res ) {
console.log(req.params.id)
Employee.findOne({userId:req.param.id}, function (err, employee) {
if(err){
console.log(err);
}
else {
console.log(employee)
res.render('employeeinfo',{employee:employee})
}
})
})
module.exports = router
Employee.Ejs
<title> Sign Up </title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<tbody>
<tr>
<td>id</td>
<td>Contact_No: </td>
<td>Address: </td>
</tr>
<tr>
<td><%= employee._id%></td>
<td><%= employee.Contact_No%></td>
<td><%= employee.Address%></td>
</tr>
</tbody>
</table>
</body>
</html>