为啥我的添加好友测试路由在 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
并将文档 push
friendId 更新为好友字段
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,但是当我调用获取所有用户时它没有嵌套?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我运行我的 phpunit 测试时,我得到一个空响应,但 Postman 中的相同路由/用户的行为符合预期?