Sails.js在根对象中返回生成的API

时间:2014-11-08 16:36:28

标签: json rest ember.js sails.js

我试图根据json:api format使用sails.js构建一个简单的API。这样我就可以在Ember.js中使用它而无需修改适配器。

我在风帆中使用了蓝图生成器,如下所示:

sails generate api posts

但是http://127.0.0.1:1337/posts的基础资源给出了响应:

[
  {
    "id": 1,
    "createdAt": "2014-11-08T14:45:23.328Z",
    "updatedAt": "2014-11-08T14:45:23.328Z",
    "title": "Example post",
    "body": "This is a test"
  }
]

但显然我想要一个基础对象,所以我得到这样的响应:

{
  "posts": [
    {
      "id": 1,
      "createdAt": "2014-11-08T14:45:23.328Z",
      "updatedAt": "2014-11-08T14:45:23.328Z",
      "title": "Example post",
      "body": "This is a test"
    }
  ]
}

我是如何在Ember.js中做到这一点的?

修改:我使用Ember Data作为数据存储和适配器。

1 个答案:

答案 0 :(得分:1)

所以在环顾四周之后,我还没有找到我问题的具体答案,但这就是我弄清楚它的方法。

查看Sails.js蓝图,它会为API生成响应目录。在这里有一个ok.js文件,用于处理200响应的数据服务。

文件:api/responses/ok.js

有以下几条返回行:

return res.jsonx(data);

由于我的API中只有一个资源,我将代码更改为:

return res.jsonx({ "posts": data });

这将数据包装在默认情况下ember数据所需的根对象中。