Ember.js 无法读取属性';类型';未定义的
我尝试将我的应用程序设置为ember@2.5.0,但每次我使用商店并尝试使用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
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格式,并且您是正在启用单个用户,但您请求了一组用户。