为啥我的添加好友测试路由在 insomina 中通过了 200 OK,但是当我调用获取所有用户时它没有嵌套?

Posted

技术标签:

【中文标题】为啥我的添加好友测试路由在 insomina 中通过了 200 OK,但是当我调用获取所有用户时它没有嵌套?【英文标题】:Why my add friend testing route goes through in insomina with 200 OK, but it's not nested when I call to get all users?为什么我的添加好友测试路由在 insomina 中通过了 200 OK,但是当我调用获取所有用户时它没有嵌套? 【发布时间】:2021-10-27 13:04:20 【问题描述】:

我正在使用 mondoDB 和 moongose NoSQL。当我尝试向用户添加朋友时,我有此代码。

 addFriend( params , res) 
   User.updateOne
   ( _id: params.friendId )
     .then(dbUserData => res.json(dbUserData))
     .catch(err => res.json(err));
 ,

http://localhost:3001/api/users/61286c3285a0afa77a1b869e/friends/6128178de88611885576fdd6

这是测试路线,我明白了:


  "driver": true,
  "name": "MongoError",
  "index": 0,
  "code": 66

目标是将其添加到主路由中:

http://localhost:3001/api/users

这是我得到的:

 
    "_id": "61286c3285a0afa77a1b869e",
    "username": "testing",
    "email": "testing@gmail.com",
    "friends": []
  ,

目标是让它嵌套到朋友的数组中。

【问题讨论】:

【参考方案1】:

要更新文档,您必须查询特定文档 userId 并将文档 pushfriendId 更新为好友字段

addFriend( params , res) 
   User.updateOne
   ( _id: params.userId ,$push:friends:params.friendId)
     .then(dbUserData => res.json(dbUserData))
     .catch(err => res.json(err));
 ,

【讨论】:

感谢您花时间阅读我的代码。我现在得到了一些不同的东西。它嵌套在主路由中,但显示为空。我希望将用户的 id 嵌套到另一个朋友的数组中。

以上是关于为啥我的添加好友测试路由在 insomina 中通过了 200 OK,但是当我调用获取所有用户时它没有嵌套?的主要内容,如果未能解决你的问题,请参考以下文章

为啥提供者组合不会在飞镖测试中通知其新状态?

Redis实现微博好友功能微服务(关注,取关,共同关注)

添加对方手机号为好友时显示没注册为啥有头像显示?

为啥当我运行我的 phpunit 测试时,我得到一个空响应,但 Postman 中的相同路由/用户的行为符合预期?

为啥 Laravel 中的 PHPUnit 不能访问存在的路由?

微信扫二维码为啥可以加好友啊?