Ember Mirage - 无法捕获响应
Posted
技术标签:
【中文标题】Ember Mirage - 无法捕获响应【英文标题】:Ember Mirage - Not able to capture the response 【发布时间】:2019-05-22 16:14:54 【问题描述】:ember 新手,我正在尝试使用 ember-cli-mirage 模拟 API 服务器。我正在从account.js
到store
创建一个请求,但响应不是我所期望的。
## /app/routes/account.js
import Route from '@ember/routing/route';
import inject as service from '@ember/service';
export default Route.extend(
store: service(),
model()
this.store.findAll('accounts').then(response =>
console.log(response)
);
// return this.store.findAll('accounts');
);
## /app/mirage/config.js
export default function ()
this.get('/accounts', (schema) =>
return
data: [
firstName: 'John'
]
;
, timing: 2000);
这是我得到的回应,
有什么遗漏吗?
【问题讨论】:
【参考方案1】:您正在记录 response
,这实际上是 store.findAll
的返回值,而不是来自 Mirage 的 HTTP 响应。
store.findAll
封装了 HTTP 请求/响应逻辑,并实际使用 Ember Data 模型的实例或模型数组进行响应。在您的情况下,由于您调用了findAll
,因此响应是一组 Ember Data 模型。
如果您想查看 Mirage 响应的详细信息,请检查您的控制台以获取类似 Mirage: 200 OK for GET /accounts
的信息。您应该能够展开它以查看 Mirage 处理的请求和响应的详细信息。
【讨论】:
$.getJSON('/accounts').then(data => console.log(data); );
正在返回预期数据,但 this.store.findAll('accounts').then(data => console.log(data.get('length')); );
是 0
和 data.get('firstObject')
是 undefined
。你能告诉我什么是正确的方法吗?
@moustacheman 你在哪里可以解决这个问题?您是否尝试记录数据并查看?以上是关于Ember Mirage - 无法捕获响应的主要内容,如果未能解决你的问题,请参考以下文章
Ember cli mirage 错误:补丁处理程序无法读取 null 的属性更新