我正在做一个由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的序列化方式。但它需要吗?有没有更简单的方法来解决这个问题?
谢谢, 斯特凡
答案 0 :(得分:1)
您在数据库中所拥有的内容似乎与Mongoose架构中的内容不对应。在已经拥有一些现有数据之后,您是否已经改变了mongoose中的模式?这发生在我上周,所以这是我的第一次猜测......
您也可以确认这是由于Angular.js吗?例如,你可以尝试调试你的node.js应用程序,看看它是否正常工作?这根本不是客户端问题!
<强>更新强>:
您是否可以确认在使用某个HTTP客户端(例如Postman REST Client)发布/获取数据时,API工作正常。