如何接收来自 Ember 发送的数据

How to receive data from Ember send

如何将数据从 Ember 发送到 Express 服务器?

根据官方文档,我们可以像这样在路由器中执行保存操作:

export default Ember.Route.extend({
  model(params) {
    var photo = this.get('store').createRecord('photo', {
      title: 'ni hao xin ji lu',
      owner: 'ViII',
      city: 'Dalian',
      image: 'fafa.jpg',
      star: 3,
      description: '.....'
    });

    photo.save();

在服务器端,例如使用 Express,像这样:

router.post('/photos', function(req, res, next) {
  console.log(req.body)//How To Do Here
});

确实,服务器会触发post事件,但是当我搜索req控制台时,没有关于Ember请求的照片数据。

我是不是忘记了什么?如何使用 Ember 将数据传递到服务器以便服务器可以接收它?

我使用的是最新的 Ember 版本。

默认情况下 Ember 会将数据作为 JSON 发送到服务器。你需要告诉 Express 来解析它。我相信 Ember 的 JSONAPIAdapter 发送 application/vnd.api+jsoncontent-type header,这需要对 bodyParser 进行一些额外的配置:

var bodyParser = require('body-parser');
app.use(bodyParser.json({type: 'application/vnd.api+json'}));