NodeJS的深度扩展(类似于jQuery的)

43

我正在处理NodeJS中对象的深拷贝问题。我的自定义扩展功能不太好用。Underscore的扩展功能是平的。虽然在stackexchange上有一些相当简单的扩展变体,但没有一个接近jQuery.extend(true,{},obj,obj,obj)..(大多数实际上很糟糕,并且会破坏异步代码的优势)。因此,我的问题是:是否有适用于NodeJS的良好深度副本?有人移植了jQuery的吗?


避免这样做。深拷贝不好。更倾向于浅拷贝。 - Raynos
3
为什么浅拷贝会成为一连串异步回调的噩梦,请解释一下? - itsatony
1
此外,我们的数据库结构(mongoDB)具有相当深层次的对象,我真的不想在结构转换方面折腾...在代码和数据库中使用完全相同的对象非常方便... - itsatony
当然可以。只是不要深拷贝它们。我使用来自mongo的对象,从来不会深拷贝它们:\ - Raynos
4
我不同意Raynos的观点,你应该根据自己的用例来判断这种行为是否正确。只是要注意有陷阱,理智使用。这是关于Underscore项目深层复制/扩展问题的辩论:https://github.com/documentcloud/underscore/issues/162 - Richard Marr
你可以使用这个插件 https://github.com/maxmara/dextend - Vlad Miller
11个回答

0

锐化版本称为whet.extend

我用CoffeeScript重新编写了node-extend并添加了travis-ci测试套件,因为我需要在Node中进行深度复制,所以现在它在这里。

是的,在某些情况下,我认为使用深度合并是绝对正确的,例如在配置工作中,当我们需要将默认分支和用户分支合并在一起时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接