AngularJS对象序列化的缺点

时间:2014-01-22 17:13:18

标签: javascript json node.js angularjs mongoose

我正在做一个由node.js / mongodb后端提供服务的angularJS应用程序。

我的服务器提供了一个存储和返回JSON对象的rest API。我的一些mongodb架构有几个ref,它们在被提供给angularJS应用程序之前就可以实时填充。我的一些对象是“复杂的”,即我有一个包含对象数组的对象,这些对象有一个对我的用户的引用。似乎当我在服务器上使用$ resource更新(PUT)此对象时,不会处理最后一个间接层。

而不是:

{
    enrollments: [
       {
           price: 100,
           userProfile: {
               _id: 'xxxxxxxxxxxxxxxxxxxxxxx'
               name: "Roger"
           }
       }
    ]
}

我有类似的东西:

{
    enrollments: [
       {
           price: 100,
           userProfile: [Object]
       }
    ]
}

所以我的更新会删除有关我数据库中用户个人资料的信息。似乎在第三级之后,序列化程序停止寻找更多数据。

我已经在AngularJS文档中对stackoverflow进行了一些广泛的研究,但无济于事。当然是因为这个问题的一般性质。

我目前的结论是编写一个自定义的“请求转换”来改变JSON的序列化方式。但它需要吗?有没有更简单的方法来解决这个问题?

谢谢, 斯特凡

1 个答案:

答案 0 :(得分:1)

您在数据库中所拥有的内容似乎与Mongoose架构中的内容不对应。在已经拥有一些现有数据之后,您是否已经改变了mongoose中的模式?这发生在我上周,所以这是我的第一次猜测......

您也可以确认这是由于Angular.js吗?例如,你可以尝试调试你的node.js应用程序,看看它是否正常工作?这根本不是客户端问题!

<强>更新

您是否可以确认在使用某个HTTP客户端(例如Postman REST Client)发布/获取数据时,API工作正常。