如何获取已登录的用户信息

时间:2020-07-08 08:13:02

标签: javascript node.js mongodb express passport.js

我为我的雇员表创建了一个外键,但是我面临着获取特定用户信息的问题,它仅显示雇员表的第一条记录。我只想获取已登录的用户信息。但是它不显示已登录用户的信息。

员工模式:

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>

0 个答案:

没有答案