Ember Data 404 при использовании магазина - PullRequest
0 голосов
/ 28 мая 2018

Впервые на Ember.js - простое приложение для изучения задач.

В моем routes/todos.js у меня есть:

import Route from '@ember/routing/route';

export default Route.extend({
  model() {
    return [
      {
        title: 'walk the dog',
        completed: false,
      },
    ];
  },
});

Однако, когда я изменяю на:

export default Route.extend({
  model() {
    return this.get('store').findAll('todo');
  },
});

, я получаю ошибку:

ember-console.js:29 Error while processing route: todos Ember Data Request GET /todos returned a 404

Что означает эта ошибка?

1 Ответ

0 голосов
/ 31 мая 2018

findAll всегда будет делать запрос к серверу API.Если этого не существует или он недоступен, он вернет 404. Используйте peekAll, если вы просто хотите ссылаться на данные в Магазине без запроса API.

A 404 также вызоветсостояние ошибки, которое будет выдано на маршруте, и модель будет отклонена.Вот один из способов, который я обошел, для API, которые выдают 404, когда нет данных (например, вместо 200 с пустым массивом):

return new EmberPromise(resolve => 
  this.get('store').findAll('todo').then(
    // resolves successfully whether the API call succeeds or fails
    todos => resolve(todos),
    err => {
      console.warn(err);
      resolve([]);
    }
  )
);
...