Node-express项目--个人简历:删除某条个人经历experience 删除整个User信息
Posted 安之ccy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node-express项目--个人简历:删除某条个人经历experience 删除整个User信息相关的知识,希望对你有一定的参考价值。
删除个人经历
功能描述:根据输入的experience_id删除个人经历
- 寻找与输入的exp_id匹配的experience,删除并保存修改
- 遍历每个experience,将其id与exp_id比较,符合则记录其索引位置
- 根据索引位置删除experience
- 保存修改,同步到数据库
在路由文件profile.js中:
//$route DELETE api/profile/experience/:exp_id
//@desc 删除个人经历接口
//@access private
router.delete("/experience/:exp_id", passport.authenticate("jwt", { session: false }), (req, res) => {
// 寻找该用户的profile数据
Profile.findOne({ user: req.user.id })
.then(profile => {
// 寻找与输入的experience的id匹配的经历
const removeId = profile.experience
.map(item => item.id)
.indexOf(req.params.exp_id)
// 删除该经历
profile.experience.splice(removeId, 1);
// 保存修改
profile.save()
.then(profile => {
res.json(profile)
})
.catch(err => res.status(404).json(err))
})
})
postman测试:
原本数据库里test3账号的profile信息是这样的:
我们删除第0条数据,记得带上对应账号的未过期的token:
可以看到,刚刚那条经历已经被删除了,数据库里只剩下一条经历:
删除整个User信息
功能描述:删除当前用户的所有信息
- 使用findOneAndRemove函数,通过req.user.id寻找当前用户信息;
- 删除当前用户的profile数据
- 删除当前用户的user数据
在路由文件profile.js中:
//$route DELETE api/profile
//@desc 删除整个用户接口
//@access private
router.delete("/", passport.authenticate("jwt", { session: false }), (req, res) => {
// 寻找该用户的profile数据并删除
Profile.findOneAndRemove({ user: req.user.id })
.then(() => {
// 删除该用户的user信息
User.findOneAndRemove({ _id: req.user.id })
.then(() => {
res.json({ success: true })
})
})
.catch(err => res.json(err))
})
postman测试:
数据库里test3账号的user信息是这样的:
profile信息是这样的:
postman模拟删除操作,删除成功则提示success:
这时再查看数据库,已经没有test3账号的任何信息
user中:
profile中:
以上是关于Node-express项目--个人简历:删除某条个人经历experience 删除整个User信息的主要内容,如果未能解决你的问题,请参考以下文章
Node-express项目--个人简历:搭建posts接口并实现评论点赞以及相关功能
Node-express项目--个人简历:搭建posts接口并实现评论点赞以及相关功能
Node-express项目--个人简历:搭建个人经历experience接口
Node-express项目--个人简历:搭建个人经历experience接口