2016-04-30 2 views
2

Я попытался установить мое приложение в [email protected], но каждый раз, когда я использую магазин и попытаться использоватьНе удается прочитать свойство «тип» неопределенной

this.store.findAll("user"); 

Я всегда получаю ошибку говоря не удается прочитать свойство «тип» неопределенного.

Инициализировал магазин, адаптер и модель и сервер тоже.

адаптеры/application.js

import JSONAPIAdapter from 'ember-data/adapters/json-api'; 
export default JSONAPIAdapter.extend({ 
    defaultSerialiser: "-default" 
}); 

модели/user.js

import Model from 'ember-data/model'; 
import attr from 'ember-data/attr' 
export default Model.extend({ 
    "name": attr() 
}); 

и на стороне сервера это как

app.get("/users", function(req, res) { 
    res.send({"name": "Surya"}); 
}); 

Получение ошибки

TypeError: Cannot read property 'type' of undefined 
at _pushInternalModel (store.js:1524) 
at push (store.js:1501) 
at finders.js:148 
at Object.Backburner.run (ember.debug.js:678) 
at _adapterRun (store.js:1733) 
at finders.js:145 
at tryCatch (ember.debug.js:53806) 
at invokeCallback (ember.debug.js:53821) 
at publish (ember.debug.js:53789) 
at ember.debug.js:32054 
+0

Существует опечатка в вас переходник, он должен быть «defaultSerializer» не «defaultSerialiser», а также имя сериализатора выглядит неправильно для меня (если вы на самом деле не назвали ваш сериалайзер как -default.js). Если вы пытаетесь использовать сериализатор по умолчанию, я предполагаю, что вам не нужно указывать его в адаптере. Но, судя по ответу, который вы предоставляете, как отметил @Lux, вы должны изменить свой формат полезной нагрузки, если вы действительно хотите использовать jsonapi. –

+1

И вы не возвращаете формат jsonapi, вы возвращаете формат RESTAdapter/RESTSerializer, и вы возвращаете одного пользователя, но вы запросили коллекцию пользователей. – Kingpin2k

ответ

1

Вы используете JSONAPI сериалайзер и адаптер, но ваш ответ

{ 
    "user": { 
    "name": "Surya" 
    } 
} 

не является действительным JSONAPI ответ. Он должен быть

{ 
    "data": { 
     "type": "user", 
     "id": "0", 
     "attributes": { 
     "name": "Surya" 
     } 
    } 
} 
+0

Извините, но мне нужно отправить ответ как простой JSON, и у меня могут быть только эти любопытные данные. Но я тоже пытался это сделать. Но все же была та же ошибка. –

+0

Затем используйте другой сериализатор/адаптер или напишите сами. – Lux

+0

Для этого типа ответа вы должны использовать адаптер REST и сериализатор, он включен в Ember. – Senthe

Смежные вопросы