1

モデル レコードを作成し、ルートとコントローラーを介して保存しています。コントローラーを介して (savePlace アクションを介して) レコードを保存すると、JS コンソールに次のエラーが表示されます。

SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

モデルに何も設定せず、モデルにダミーデータを設定しようとしましたが、同じエラーが発生します。また、JSON 応答を処理するテスト バックエンドとして ember-cli http-mocks を使用しています。それが応答である可能性があることは認識していますが、他に応答を構成する方法がわかりません。

関連するコードは次のとおりです。

ルート/場所/new.js:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    return this.store.createRecord('place');
  },
});

コントローラー/場所/new.js:

import Ember from 'ember';

export default Ember.Controller.extend({
  actions: {
    saveGeom(geom) {
      this.get('model').set('geometry', geom);
    },
    savePlace(data) {
      this.get('model').set('name', this.get('name')).set('description', this.get('description'));
      this.get('model').save().then(function() {
          alert("SUCCESS");
        }, function(error) {
          console.log(error);
        });
    }
  }
});

サーバー/モック/place.js:

  placeRouter.post('/places', function(req, res) {
    res.setHeader('Access-Control-Allow-Methods', 'POST');
    res.send({
      "places": {
            id: 1,
            name: "Triangle",
            description: "Ryan Christiani",
            geometry: {
              "type": "Polygon",
              "coordinates": [
                [
                  [-84.32281494140625,34.9895035675793],
                  [-81.73690795898438,36.41354670392876],
                  [-83.616943359375,  34.99850370014629],
                  [-84.05639648437499,34.985003130171066],
                  [-84.22119140625,   34.985003130171066],
                  [-84.32281494140625,34.9895035675793]
                ]
              ]
            }
        }
    });
  });

ありがとう!

4

2 に答える 2

0

http-mocks の設定が間違っています。これは、以下のコード スニペットである必要があります。代わりに、サーバーはオブジェクトの配列 ('GET /' に対する応答) で応答しました。JSON.parse エラーが発生する理由はわかりませんが、これは正しい構成です。

  placeRouter.post('/', function(req, res) {
    res.setHeader('Access-Control-Allow-Methods', 'POST');
    res.send({
      'places': [
{
            id: 1,
            name: "Using Ember CLI to create a Fixture Adapter.",
            description: "Ryan Christiani",
            geometry: {
              "type": "Polygon",
              "coordinates": [
                [
                  [-84.32281494140625,34.9895035675793],
                  [-81.73690795898438,36.41354670392876],
                  [-83.616943359375,  34.99850370014629],
                  [-84.05639648437499,34.985003130171066],
                  [-84.22119140625,   34.985003130171066],
                  [-84.32281494140625,34.9895035675793]
                ]
              ]
            }
        }]});
  });
于 2015-08-27T17:12:15.387 に答える