LoopbackJS遇到collectionsJS模块的问题

时间:2016-04-01 17:49:23

标签: node.js collections loopbackjs strongloop sortedset

我们正在使用Strongloop的Loopback框架来公开一些REST API。我们有不同的REST实体对应的不同环回模型。在环回模型A中,我们在API响应中返回一个数组。在另一个回送模型B模型中,我们使用CollectionsJS公开的SortedSet collection,如下所示:

var SortedSet = require('collections/sorted-set'); //Start of the file
...
...
//create the SortedSet instance and push values.

现在,如果没有这个要求,模型A的API会正确返回数组。在模型B中添加此需求后,模型A的API返回一个对象而不是数组(键是数组索引,值是数组值)。模型A代码保持不变。

所以我的猜测是存在某种冲突,其中Loopback和/或NodeJS也使用在CollectionsJS中使用/操作的类型。但是我怎么调试这个问题呢?

1 个答案:

答案 0 :(得分:0)

发现它! CollectionsJS"垫片"在Array原型上有一些额外的方法,其中一个是" toObject"。 Loopback在响应生成期间调用所有模型属性上的.toObject方法。其中一个模型属性是一个数组,这意味着也会调用.toObject。现在,如果我不要求"在collections模块中,Array原型没有注入toObject方法,因此Loopback使用了通常的数组表示。