我试图仅从我的 mongodb 中提取当前用户的数据,以便在 ejs 文件中用于配置文件路径,其中它应该根据每个用户的输入进行自定义
im trying to pull the current user's data only from my mongodb to use in ejs file for a profile route where it should be custom to each user's inputs
希望它呈现当前用户 user.object
app.get("/profile", isLoggedIn, (req,res)=>{
User.find({}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
这是我的用户模式
const mongoose = require("mongoose");
const passportLocalMongoose = require("passport-local-mongoose");
const UserSchema = new mongoose.Schema({
username: String,
password: String,
review: {
type: mongoose.Schema.Types.ObjectId,
ref: "Review"
}
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", UserSchema);
当我 运行 代码转到配置文件路径时,它带回了所有用户,我尝试了多种方法只带回一个,但我一直收到错误
您只需使用 findOne
即可获得一个用户。
app.get("/profile", isLoggedIn, (req,res)=>{
User.findOne({}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
app.get("/profile", isLoggedIn, (req,res)=>{
User.findOne({_id: req.user}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
我试过 findOne({...}... 成功了!!!谢谢你的帮助
您可以考虑使用 findById(id)
,因为 Mongoose documentation 建议使用它而不是 findOne({ _id: id })
。
app.get("/profile", isLoggedIn, (req, res) => {
User.findById(req.user, (err, User) => {
if (err) {
console.log(err);
res.redirect("/login");
} else {
res.render("pages/userprofile", { User: User });
console.log(User);
}
})
});
希望它呈现当前用户 user.object
app.get("/profile", isLoggedIn, (req,res)=>{
User.find({}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
这是我的用户模式
const mongoose = require("mongoose");
const passportLocalMongoose = require("passport-local-mongoose");
const UserSchema = new mongoose.Schema({
username: String,
password: String,
review: {
type: mongoose.Schema.Types.ObjectId,
ref: "Review"
}
});
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", UserSchema);
当我 运行 代码转到配置文件路径时,它带回了所有用户,我尝试了多种方法只带回一个,但我一直收到错误
您只需使用 findOne
即可获得一个用户。
app.get("/profile", isLoggedIn, (req,res)=>{
User.findOne({}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
app.get("/profile", isLoggedIn, (req,res)=>{
User.findOne({_id: req.user}, (err,User)=>{
if(err){
console.log(err);
res.redirect("/login");
}else{
res.render("pages/userprofile", {User:User});
console.log(User);
}
})
});
我试过 findOne({...}... 成功了!!!谢谢你的帮助
您可以考虑使用 findById(id)
,因为 Mongoose documentation 建议使用它而不是 findOne({ _id: id })
。
app.get("/profile", isLoggedIn, (req, res) => {
User.findById(req.user, (err, User) => {
if (err) {
console.log(err);
res.redirect("/login");
} else {
res.render("pages/userprofile", { User: User });
console.log(User);
}
})
});