ember-cli http-mock не возвращается в мое приложение

Поэтому я добавил http-mock для пользователей, который возвращает только одного пользователя на маршруте получения, например...

  usersRouter.get('/:id', function(req, res) {
    res.send({
      "users": {
        "id": 1,
        "pin": 1234,
        "first_name": "John",
        "last_name": "Doe",
        "email": "[email protected]",
        "phone": 8436376960
      }
    });
  });

В моей модели у меня есть это

import DS from 'ember-data';

export default DS.Model.extend({
  pin: DS.attr('number'),
  first_name: DS.attr('string'),
  last_name: DS.attr('string'),
  email: DS.attr('string'),
  phone: DS.attr('number')
});

и в моем действии, когда я отправляю форму, у меня есть это для выполнения запроса на получение

return this.store.find('user',id);

когда я нажимаю кнопку отправки, я вижу в консоли ошибку 404 для получения URL-адреса, например

GET http://localhost:4200/users/1 404 (Not Found)

мне нужно сделать что-нибудь еще, чтобы заставить этот макет работать? Я ничего не видел о необходимости адаптера или сериализатора, чтобы макет работал.


person Jordan    schedule 24.12.2014    source источник
comment
Разве API не должен возвращать "user", а не "users"? Если это не сработает, можете ли вы поделиться остальной частью своей макетной конфигурации?   -  person Buck Doyle    schedule 24.12.2014
comment
Я следую соглашению в документации ember-cli, которое показывает использование множественного числа в http-mocks. Но, как вы можете видеть в URL-адресе, похоже, Ember ожидает, что URL-адрес будет во множественном числе. В конечном итоге мне пришлось сгенерировать адаптер приложения и установить в качестве пространства имен API. Я мог бы также изменить экспресс-приложение, чтобы использовать только «/users» вместо /api/users’, но новые http-mocks будут использовать формат /api, и я подумал, что лучше просто использовать подход адаптера.   -  person Jordan    schedule 25.12.2014


Ответы (1)


Я заметил, что при создании http-mock в ember-cli состояния кода экспресс-приложения

app.use('/api/users', usersRouter);

и ember просто смотрел на /users/:id, поэтому я просто сгенерировал адаптер приложения, остальное было в порядке, и установил пространство имен так

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
    'namespace': 'api'
});

Я решил использовать этот подход вместо удаления конечной точки URL-адреса API из app.use, потому что будущие http-mocks будут использовать конечную точку API в своем app.use, и я подумал, что для будущего поколения http-mocks лучше всего просто создать адаптер.

person Jordan    schedule 25.12.2014