断言失败:预期序列化程序为“queryRecord”响应返回的主要数据是单个对象,但它是一个数组
Assertion Failed: Expected the primary data returned by the serializer for a `queryRecord` response to be a single object but instead it was an array
我几天前刚遇到这个错误。每当我尝试 运行
this.store.queryRecord('user', {filter:{username : params.username}});
它显示错误:断言失败:预期序列化程序为 queryRecord
响应返回的主要数据是单个对象,但它是一个数组。
这里有什么问题?
你的后端应该return一个对象而不是数组。
找到了避免这个问题的方法。而不是 queryRecord(这似乎被 ember-data developer team 改变了),我使用 store.query 这样的:
this.store.query('user', {filter:{username : params.username}}).then(function(user){return user.get('firstObject')});
我遇到过类似情况,有2条路线
this.get('/clients', function() {return {data: [allClientsDataJson]};});
this.get('/clients:id', function() {return {data: [oneClientDataJson]};});
但是在使用 queryRecord 之后我得到了同样的错误。问题是第二条路线从未被调用过,而第一条路线在这两个原因中都被调用过。因此,在第二次调用中出现了包含所有结果的数组,而不是单一结果。
知道总是调用第一个后,我将其编辑为:
this.get('/clients', function(db, request) {
if(!Ember.isEmpty(request.queryParams)) { return oneClientDataJson
} else { return allClientsDataJson }
我几天前刚遇到这个错误。每当我尝试 运行
this.store.queryRecord('user', {filter:{username : params.username}});
它显示错误:断言失败:预期序列化程序为 queryRecord
响应返回的主要数据是单个对象,但它是一个数组。
这里有什么问题?
你的后端应该return一个对象而不是数组。
找到了避免这个问题的方法。而不是 queryRecord(这似乎被 ember-data developer team 改变了),我使用 store.query 这样的:
this.store.query('user', {filter:{username : params.username}}).then(function(user){return user.get('firstObject')});
我遇到过类似情况,有2条路线
this.get('/clients', function() {return {data: [allClientsDataJson]};});
this.get('/clients:id', function() {return {data: [oneClientDataJson]};});
但是在使用 queryRecord 之后我得到了同样的错误。问题是第二条路线从未被调用过,而第一条路线在这两个原因中都被调用过。因此,在第二次调用中出现了包含所有结果的数组,而不是单一结果。
知道总是调用第一个后,我将其编辑为:
this.get('/clients', function(db, request) {
if(!Ember.isEmpty(request.queryParams)) { return oneClientDataJson
} else { return allClientsDataJson }