Ember:使用http-mock和不正确的JSON

时间:2015-07-24 13:33:31

标签: ember.js ember-data

尝试使用Ember-cli的http-mock功能。我的计划不是输入一些不正确的JSON(没有根模型,没有ID,嵌入式模型而不是侧面加载模型等)。由于我是新手,我首先尝试使用适当的数据设置模拟服务器并且它是成功的。以下是相关代码。

适配器/ post.js

import DS from "ember-data";
export default DS.RESTAdapter.extend({
    namespace: 'api',
});

荚/后/ route.js

import Ember from "ember";

export default Ember.Route.extend({
  model: function(){
    return this.store.find('post');
  }
});

模型/ post.js

import DS from 'ember-data';

export default  DS.Model.extend({
  author: DS.attr('string'),
  title: DS.attr('string'),
  body: DS.attr('string'),
 comments: DS.hasMany('comments')
});

服务器/嘲笑/ posts.js

module.exports = function(app) {
  var express = require('express');
  var postsRouter = express.Router();

  postsRouter.get('/', function(req, res) {
    res.send({
      "posts" : [{
         'id': 1,
         'author': 'Brian',
         'title': 'Ember JS',
         'body': 'JS framework for creating ambitious web applications',
         'comments': [11,12]
       }]
    });
  });

  app.use('/api/posts', postsRouter);
};

这一点一切正常。上述模拟服务器数据与API调用中的以下JSON相关

{
    "posts" : [{
        'id': 1,
        'author': 'Brian',
        'title': 'Ember JS',
        'body': 'JS framework for creating ambitious web applications',
        'comments': [11,12]
    }]
}   

我如何编写我的模拟服务器代码来生成一个看起来像没有根模型的JSON?

{
    'id': 1,
    'author': 'Brian',
    'title': 'Ember JS',
    'body': 'JS framework for creating ambitious web applications',
    'comments': [11,12]
}       

很抱歉这篇长篇文章并提前致谢。

-Anees

1 个答案:

答案 0 :(得分:0)

实际上我自己找到了一种方式,结果很容易。

服务器/嘲笑/ posts.js

module.exports = function(app) {
  var express = require('express');
  var postsRouter = express.Router();

  postsRouter.get('/', function(req, res) {
    res.send(

      {
        'id': 1,
        'author': 'Brian',
        'title': 'Ember JS',
        'body': 'JS framework for creating ambitious web applications',
        'comments': [{
          'author': 'Jimmy',
          'body': 'Its cool',
        },
        {
          'author': 'Jake',
          'body': 'steep learning curve'
        }]
      }

    );
  });

  app.use('/api/posts', postsRouter);
};

所以基本上就像把你想要的JSON放在

里一样简单
res.send(


);

由于