Ember.js 无法读取属性';类型';未定义的

Ember.js 无法读取属性';类型';未定义的,ember.js,ember-data,ember-cli,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({ defaultSeri

我尝试将我的应用程序设置为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"
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr'
export default Model.extend({
    "name": attr()
});
models/user.js

import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
    defaultSerialiser: "-default"
});
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

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

{
  "user": {
    "name": "Surya"
  }
}
不是有效的响应。应该是

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

很抱歉,我需要以简单的JSON格式发送响应,并且我只能拥有这种类型的数据。但我也试着给这个。但是仍然有相同的错误。然后使用另一个序列化程序/适配器或编写自己的。对于这种类型的响应,您应该使用REST适配器和序列化程序,它包含在Ember中。适配器中有输入错误,它应该是“defaultSerializer”而不是“defaultSerialiser”,而且序列化程序的名称在我看来也是错误的(除非您实际将序列化程序命名为-default.js)。如果您试图使用默认序列化程序,那么我假设您不必在适配器中指定它。但是,根据您提供的响应判断,@Lux meted如果您真的想使用jsonapi,您应该更改负载格式。如果您没有返回jsonapi格式,那么您返回的是Restapter/RESTSerializer格式,并且您是正在启用单个用户,但您请求了一组用户。