总结:
-
函数式编程其实是一种编程思想,它追求更细的粒度,将应用拆分成一组组极小的单元函数,组合调用操作数据流;
-
它提倡着 纯函数 / 函数复合 / 数据不可变, 谨慎对待函数内的 状态共享 / 依赖外部 / 副作用;
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
Tips:
其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;
我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势。
理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;
所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全;
// 删除该经历
profile.experience.splice(removeId, 1);
// 保存修改
profile.save()
.then(profile => {
res.json(profile)
})
.catch(err => res.status(404).json(err))
})
})
postman测试:
原本数据库里test3账号的profile信息是这样的:
我们删除第0条数据,记得带上对应账号的未过期的token:
可以看到,刚刚那条经历已经被删除了,数据库里只剩下一条经历:
功能描述:删除当前用户的所有信息
-
使用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信息是这样的:
总结
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】