无法读取未定义的属性“类型”

时间:2016-04-30 11:39:11

标签: ember.js ember-data ember-cli

我尝试在ember@2.5.0中设置我的应用程序,但每次我使用商店并尝试使用

this.store.findAll("user");

我总是得到错误,说不能读取未定义的属性'type'。

初始化商店,适配器以及模型和服务器。

适配器/ application.js中

import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
    defaultSerialiser: "-default"
});

模型/ user.js的

import Model from 'ember-data/model';
import attr from 'ember-data/attr'
export default Model.extend({
    "name": attr()
});

和服务器端就像

app.get("/users", function(req, res) {
    res.send({"name": "Surya"});
});

获取错误

TypeError: Cannot read property 'type' of undefined
at _pushInternalModel (store.js:1524)
at push (store.js:1501)
at finders.js:148
at Object.Backburner.run (ember.debug.js:678)
at _adapterRun (store.js:1733)
at finders.js:145
at tryCatch (ember.debug.js:53806)
at invokeCallback (ember.debug.js:53821)
at publish (ember.debug.js:53789)
at ember.debug.js:32054

1 个答案:

答案 0 :(得分:1)

您使用的是JSONAPI序列化程序和适配器,但您的回复是

{
  "user": {
    "name": "Surya"
  }
}

不是有效的JSONAPI回复。它应该是

{
  "data": {
      "type": "user",
      "id": "0",
      "attributes": {
        "name": "Surya"
      }
  }
}