仅显示登录用户的帖子
Posted
技术标签:
【中文标题】仅显示登录用户的帖子【英文标题】:shows posts of only the logged in user 【发布时间】:2020-12-05 04:30:33 【问题描述】:我创建了一条路线来获取登录用户的帖子,但是现在当我为此路线调用 api 时,我正在获取所有用户的帖子。我应该在此处更改什么,以便仅获取该登录用户的帖子,而不是获取数据库中所有用户的帖子?
route.js
router.get('/', auth, async (req, res) =>
try
const posts = await Post.find().sort( date: -1 );
res.json(posts);
catch (err)
console.error(err.message);
res.status(500).send('Server Error');
);
帖子的模型架构
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PostSchema = new Schema (
user:
type: Schema.Types.ObjectId,
ref: 'users'
,
title:
type: String,
required: true
,
text:
type: String,
required: true
,
name:
type: String
,
email:
type: String
,
age: [
type: String,
required: true
],
date:
type: Date,
default: Date.now
)
module.exports = Post = mongoose.model('post', PostSchema)
【问题讨论】:
在您的帖子检索中添加一个唯一标识登录用户的参数? 【参考方案1】:您需要将filter
参数传递给find
方法。
假设您的 auth
中间件将经过身份验证的用户添加到 req
对象,route.js
的第 3 行应该是:
const posts = await Post.find( user: req.user._id ).sort( date: -1 );
【讨论】:
以上是关于仅显示登录用户的帖子的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 仅针对没有 thymeleaf 登录的用户显示注销按钮