我正在为节点创建一个小型JavaScript库来管理基本Web认证工作流程。当用户配置Express中间件时,他可以用他的首选配置提供或不提供json对象,例如,允许用户通过json对象配置设置
web: {
login: {
enabled: true,
customView: myDir/myCustomLogin.html
},
logout: {
enabled: true
},
forgotPassword: {
enabled: false
},
...someOtherProperties
如果他没有提供它,库应该使用fallback config json。但是,如果他提供了它,图书馆应该使用后备加上他所覆盖的属性。将用户的配置与应用程序的配置文件合并的最佳方式是什么?我想我可以遍历每个属性,并检查哪些是用户想要覆盖的。有没有更好的方法来做到这一点?也许是一个处理这些用例的库?生产库如何处理这些场景?
编辑: 我解决方案是基于下面的答案,这个有用的博客文章:
https://blog.mariusschulz.com/2015/03/30/combining-settings-objects-with-lodash-assign-or-merge
如果您想了解更多关于lodash提供克隆对象的不同方法检查这个问题:
Lodash - difference between .extend()/.assign() and .merge()
你绝对指出我在正确的方向我最终使用_.merge – Bartzilla