Node-express项目--个人简历:删除某条个人经历experience 删除整个User信息

Posted 安之ccy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node-express项目--个人简历:删除某条个人经历experience 删除整个User信息相关的知识,希望对你有一定的参考价值。

删除个人经历

功能描述:根据输入的experience_id删除个人经历

  • 寻找与输入的exp_id匹配的experience,删除并保存修改
  1. 遍历每个experience,将其id与exp_id比较,符合则记录其索引位置
  2. 根据索引位置删除experience
  3. 保存修改,同步到数据库

在路由文件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接口

Node-express项目--个人简历:添加token认证

Node-express项目--个人简历:register(注册)接口编写记录