「単一のレコードを発見した期待のアレイ」というエラーがスローされます私持っている「すべての場所を取得する」の次急行ルート:エンバーデータ:store.queryが正しく配列を返しますが、それでも
router.get('/', function(req, res){
let q = req.query;
let locations = Location.find({organization: q.organization});
locations.then(r => res.status(200).send(r))
.catch(err => res.status(500).send(err));
});
そして、この燃えさしモデルフックそれを正しくトリガー:今すぐ
model(){
return this.store.findRecord("user", this.get('session.currentUser.id'))
.then(user => user.get('organization'))
.then(org => this.store.query("location", {organization: org.id}))
}
、このクエリはのparamsで、次のURLにGETリクエストを送信している:
GET /locations?organization=571974742ce868d575b79d6a
そして、私のサーバーは、200の成功コードを返しているが、その後のモデルフックは、このエラーでクラッシュします
query to locations failed with error: Error: Assertion Failed: The response to store.query is expected to be an array but it was a single record. Please wrap your response in an array or use `store.queryRecord` to query for a single record.
同じアドレスへの郵便配達依頼の作成:私は配列が返さ見
localhost:3200/locations?organization=571974742ce868d575b79d6a
を、
[{object1}, {object2]
これは正しい応答のようです。 Emberがなぜ単一のレコードしか受け取っていないと言っているのですか?
それも、私のモデルフックが呼び出され、この警告をスロー:
WARNING: Encountered "0" in payload, but no model was found for model name "0" (resolved model name using [email protected]:application:.modelNameFromPayloadKey("0"))
編集:これを実現
は、シリアライザ/アダプタ・エラーの可能性があります:
たぶん// app/adapters/application.js
import DS from 'ember-data';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';
export default DS.RESTAdapter.extend(DataAdapterMixin, {
host: 'http://localhost:3200',
authorizer: 'authorizer:application'
});
私のシリアライザには何かがありませんか?
// app/serializers/application.js
import DS from 'ember-data';
export default DS.RESTSerializer.extend({});
?どのアダプタ/シリアライザを使用していますか? (Ember Data 2+のデフォルトはJsonApiAdapter/JsonApiSerializerで、これはあなたのレスポンスと互換性がありません)。 – Gaurav
応答のためのおかげで@Guarav私はアダプタとシリアライザのコードを含める質問を編集しました。 –
プロジェクトを2.5.0に更新する –