我目前正在构建一个 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});
});