当前位置: 首页 > 知识库问答 >
问题:

如何找到用户的帖子?

扶冠宇
2023-03-14

你好,我想找到用户所做的帖子...

我使用JWT令牌执行请求:

###
http://localhost:8080/forum/getByOwnerID
Authorization: Bearer {{token}}

这是我的创建函数:

exports.create = async (req, res) => {
 
  const { forumName, forumDescription } = req.body;
  const token = req.token;
  const forumExist = await Forum.findOne({ forumName: req.body.forumName });
  if(forumExist){
    res.status(400).send("Forum Exists already.");
  }  
  try{
  const owner = await User.findOne({userID:token._id});
  if (!forumName || !forumDescription) {
    res.status(400);
    throw new Error("Please Fill all the feilds");
    return;
  }
  else {
    const newForum = new Forum({ forumName, forumDescription,user: owner.userID });
    newForum.user = owner;
    const createdNote = await newForum.save();
    res.status(201).json(createdNote);
  }
  }catch(err){
    res.status(400).send(err);
  }
};

这是我的函数,我想在其中获取用户发表的帖子:

exports.getByToken = async (req, res, next) => {
  const forum = await Forum.findById( {user: req.token._id} );

  if (forum) {
    res.json(forum);
  } else {
    res.status(404).json({ message: "Forum not found" });
  }

  res.json(forum);
}

这是我为博文准备的模型:

const forumSchema = ({
    forumName: {
        type: String,
        required: true,
    },
    forumDescription: {
        type: String,
        required: true,
    },
    user: { 
        type: Schema.Types.ObjectId,
        
        ref: 'user'
    },
    published_on: {
        type: String,
        default: moment().format("LLL")
    },
});

每次我做一个请求它有这个错误:

UnhandledPromiseRejectionWarning: CastError: Cast to ObjectId failed for value "{ user: 'admin' }" (type Object) at path "_id" for model "Forum"

我的生成令牌:

const generateToken = (_id, userID) => {
  console.log('Signing token for ID ', _id,userID);
  console.log('Secret key is ', process.env.JWT_KEY);
  const token = jwt.sign({ _id,userID}, process.env.JWT_KEY, {
    expiresIn: "30d",
  });
  console.log('Signed token: ', token);
  return token;
  
};

共有1个答案

雷献
2023-03-14

在使用findById时,只应将id作为参数函数发送。

如果你想搜索过滤器查询,使用查找方法

 类似资料:
  • 问题内容: 我有一个包含以下两个表的数据库, USERS,POSTS 我正在寻找一种方法来获取用户拥有的帖子数。 我尝试了以下SQL命令的许多变体,但均未成功。与其显示单个用户的帖子数,不如显示一行包含所有帖子的数。 最后我想要这样的东西 问题答案: 弄清楚了。

  • 我找了很多,但没有找到任何答案,所以我希望你能帮助我! 我有三个表:post、users和post\U users。Post_users包含两列:user_id和Post_id。 我需要得到一个有口才的用户的所有帖子。有什么想法吗? 非常感谢你! (如果这个问题已经存在,我很抱歉,但我还没有找到它)

  • 问题是无论我开什么帖子,它都能让我找到一个特定的帖子。原因是我编写single.php循环函数的方式。它只是得到所有的帖子,并打开第一个,我知道我的错误在哪里,但我不知道我如何修复。这是我的单独的.php代码。 所以我明白了,为什么它会让我得到这样的结果,但我该如何修复它呢?

  • 问题内容: 我想对具有多对一关系的2个表进行搜索,例如 现在说我有一些像这样的数据 我想做的是创建一个活动记录查询,该查询将返回同时拥有cat和dog的用户(即用户1-Bob)。 到目前为止,我的尝试是 现在,我明白了为什么这行不通-它正在寻找既是dog又是cat的宠物,因此什么也不返回。我不知道如何修改它来给我我想要的答案。有没有人有什么建议?这似乎应该很容易- 似乎不是特别不寻常的情况。 -

  • 这是一个社交媒体软件。 用户表有id,名称,电子邮件,密码字段。 发布表有id,user_id,标题和其他字段。 职业表有id,标题字段 users_professions表有id,user_id字段 每个用户都有很多帖子。 用户有很多帖子,发布个人物品给用户。 每个用户有一个users_professions。 用户hasOneusers_professions。 问题: 我想获得用户职业与所选

  • 我有一个AWS Appsync应用程序,使用DynamoDB作为后端。我有一个帖子表,每个帖子都有一个原作者的用户名字段。我现在的情况是,我想查询查看他们所关注的所有作者的文章。 每个用户可以有许多帖子,每个用户可以跟随许多用户。 我应该如何构造DynamoDB中的表和AppSync中的AppSync解析器/模式来实现这一点。