JavaScript数组对象转换

我不完全确定我应该命名这个问题,所以随时编辑标题。

我正在运行一个angular度的应用程序,并使用node.js结合expresssequlize (对于我的ORM

现在,很多人可能知道何时使用ORM来处理另一个Objects内部的Object ,例如, user对象中可能有一个country对象,如下所示:

 user = {id: 222, username: 'Marc', name: 'Marc Ras', country: {id: 1, code: 'DK', name: 'Denmark'}} 

现在这很好。 将所有这些对象绑定在一起使得在前端工作起来更容易。

然而相反,这是相当烦人的。

以示范为目的,以上述的对象为例。 但让我们添加一个propertyarray of items

 user.items = [{id: 1 , name:'item1'}, {id: 2, name: 'item2'}] 

现在,如果我想将这个对象添加到我的数据库,我会发送组合的对象到我的快递路线:

 var user = { id: 222, username: 'Marc', name: 'Marc Ras', country: {id: 1, code:'DK', name: 'Denmark'} items: [ {id: 1, name: 'item1'}, {id: 2, name: 'item2'} ] } 

现在事情变得凌乱了

比如说你有下面的表格:

 user_has_items 

每个logging都有一个iduser_iditem_id

现在,为了确保user.items中的对象与表格匹配,您现在必须通过user.items循环和编辑上述对象来编写体操代码。

就像这样:

 user.items.forEach(function (x) { x.item_id = x.id; x.id = null; // To make sure the database does not set the id (since this is auto inc) x.user_id = user.id; }) 

注意上面的例子当然是一个例子,它变得越复杂,你的对象就越大!

这个过程导致了混乱的代码(至less在我看来),因为这不是我第一次遇到这个问题,我想知道你是否有任何解决scheme,你可能会做什么,使这个过程更容易?

我一直在看lodash ,看看他们是否有这样做的方式,但很遗憾,我找不到任何使这个简单