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.jsstore 创建一个请求,但响应不是我所期望的。

## /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')); );0data.get('firstObject')undefined。你能告诉我什么是正确的方法吗? @moustacheman 你在哪里可以解决这个问题?您是否尝试记录数据并查看?

以上是关于Ember Mirage - 无法捕获响应的主要内容,如果未能解决你的问题,请参考以下文章

Ember + Mirage:响应模拟错误

使用 ember-cli-mirage 测试错误响应

Ember cli mirage 错误:补丁处理程序无法读取 null 的属性更新

Ember Mirage 没有将模型作为 ember 对象传递

在 ember-cli-mirage 中引入瞬时延迟

Ember mirage 仅在特定情况下引入延迟