0

我正在学习 Ember,我一直坚持使用 ember-cli-mirage 制作模拟 api。我修改了 ember 教程和 ember-cli-mirage 站点中指定的配置文件,但每次点击端点时,我什么也得不到。这是我当前的配置文件

export default function() {
this.get('/api/users', function() {
return {
  users: [
    {id: 1, name: 'Zelda'},
    {id: 2, name: 'Link'},
    {id: 3, name: 'Epona'},
  ]
}
});
}

就像我说的,当我转到 /api/users 时,它只是一个空白页面。我在这里错过了什么吗?

谢谢!

4

3 回答 3

1

首先,安装 Ember 检查器扩展(适用于 Chrome 或 Firefox)并在浏览器控制台中查看 Mirage 是否给您一些错误。如果其中没有任何内容,则说明您没有使用 ember 应用程序访问端点。基本上,Mirage 代理来自您的 ember 应用程序的所有请求。

所以你需要生成一个用户模型

    ember g model user

并将名称属性放在那里。

创建一条路线并在模型挂钩中写入

    return this.get('store').findAll('user');

(如果不清楚,请查看快速入门教程)

所以现在,利用 Ember Data,您的应用程序将请求所有用户点击/users.

现在让我们从海市蜃楼开始,生成海市蜃楼模型

    ember g mirage-model user

并按照mirage 快速入门,根据您的需要进行调整 :)

启动您的应用程序,ember s您应该会看到对/users. 如果您想将您的 api 放在同一个域上,但带有/api前缀,那么我建议您阅读端点路径自定义

于 2017-03-24T23:39:38.057 回答
0

app/mirage/config.js您可以为您的设置模拟端点users

export default function() {
  this.get('/users');
  this.post('/users');
  this.put('/users/:id');
  this.del('/users/:id');
}

fixtures您可以通过配置in设置您的模拟数据app/mirage/fixtures/users.js

export default [
    {id: 1, name: 'Zelda'},
    {id: 2, name: 'Link'},
    {id: 3, name: 'Epona'},
  ];
于 2015-12-31T04:30:37.877 回答
0

Mirage 不是真正的服务器,因此您无法直接从浏览器访问 API。它是一个存在于 JavaScript 内存中的模拟服务器,并在您的 Ember 应用程序启动时被实例化。

要测试您的模拟,请让您的 Ember 应用发出 API 请求,例如

// routes/application.js
export default Ember.Route.extend({
  model() {
    return Ember.$.getJSON('/api/users');
  }
});

如果一切都正确连接,您现在应该会看到 Mirage 处理此请求并将响应数据记录在您的控制台中。

于 2015-12-31T14:36:47.127 回答