如何获取登录用户的信息

时间:2021-02-20 17:33:38

标签: node.js mongodb express

我目前正在构建一个 Web 应用程序,我需要在其中获取有关登录用户的信息,并且我想获取他/她登录时使用的电子邮件 ID。 那么我如何访问用户电子邮件属性以使用该电子邮件 ID。

在“/orders”路径中,我想显示该登录人的所有订单,并且我想访问该人登录的电子邮件的属性,以便我可以使用该电子邮件并查找我的数据库,无论他是否下过订单。那么我怎样才能获得该电子邮件属性?

这是我的 JS 代码

const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const mongoose = require("mongoose");
const session = require("express-session");
const bcrypt = require("bcrypt");
const User = require("./models/User");
const Order = require("./models/Order");


mongoose.connect(process.env.DbURI, { useNewUrlParser: true , useUnifiedTopology: true })
    .then(() => {
        console.log("connected to db!");
    }).catch(err => {
        console.log("error", err);
    });

app.set("view engine", "ejs");
app.set("views", "views");

app.use(express.urlencoded({ extended: true }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static("public"));
app.use(session({ secret: "keepABetterSecretThanThis", resave: false, saveUninitialized: true }));

const isLogin = (req,res,next) => {
    if(!req.session.userId)
        res.redirect("/login");
    else
        next();
};

app.get("/", (req, res) => {
    res.render("index");
});

app.get("/register", (req, res) => {
    res.render("signup");
});

app.post("/register", async (req, res) => {
    const firstName = req.body.firstName;
    const lastName = req.body.lastName;
    const email = req.body.email;
    const password = req.body.password;
    const user = new User({firstName, lastName, email, password});
    await user.save();
    req.session.userId = user._id;
    res.redirect("/login");
});

app.get("/login", (req, res) => {
    res.render("signup");
});

app.post("/login", async (req, res) => {
    const email = req.body.email;
    const password = req.body.password;
    const foundUser = await User.findAndValidate(email, password);
   
    if (foundUser) {
        req.session.userId = foundUser._id;
      if (email === "B119016@iiit-bh.ac.in" && password === "sagar2019.")
        res.render("admin");
      else res.redirect("/orders");
    } else {
      res.redirect("/");
    }
});

app.get("/orders", (req, res, next) => {
    const emailaddress = req.session.userId;
    console.log(email);
    const individualOrder = Order.find({ emailID: emailaddress });

    individualOrder.exec(function (err, data){
        if (err) throw err;
        res.render("orders", { records: data });

    });

});

app.get("/placeOrder", (req, res) => {
    if (req.session.userId) {
        res.render("placeOrder");
    }
});

app.post("/placeOrder", async (req, res) => {
    const Date = req.body.bf_totalGuests;
    const PickupState = req.body.pickupstate;
    const PickupCity = req.body.pickupcity;
    const DropState = req.body.dropstate;
    const DropCity = req.body.dropcity;
    const firstandlastname = req.body.bf_name;
    const emailID = req.body.bf_email;
    const extraMessages = req.body.bf_extraMessages;

    try {
        const order = new Order({
          Date,
          PickupState,
          PickupCity,
          DropState,
          DropCity,
          firstandlastname,
          emailID,
          extraMessages,
        });
        await order.save();
        res.render("hello");
    } catch(e) {
        console.log(e);
    }

    
});

app.post("/logout",(req,res)=>{
    req.session.userId = null;
    res.redirect("/login")
})
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log("Listening at " + ${port});
});

0 个答案:

没有答案