Ember.js ember http mock request.body未定义

Ember.js ember http mock request.body未定义,ember.js,ember-cli,Ember.js,Ember Cli,刚刚迁移到ember cli 0.1.12,现在http mock不适用于我 对于get请求,它可以正常工作。request.query返回所有查询参数 但是对于POST请求,我无法获取请求参数,因为request.body未定义 有人能告诉我如何在ember http mock中访问请求正文吗?正如我在问题跟踪程序中所说的,这是由于ember CLI中的更改,其中正文解析器在默认情况下被删除,因为它会影响其他中间件 我已经为你的案子开了一个公关部 我遇到了相同的问题,req.body未定义。以

刚刚迁移到ember cli 0.1.12,现在http mock不适用于我

对于get请求,它可以正常工作。request.query返回所有查询参数

但是对于POST请求,我无法获取请求参数,因为request.body未定义


有人能告诉我如何在ember http mock中访问请求正文吗?

正如我在问题跟踪程序中所说的,这是由于ember CLI中的更改,其中正文解析器在默认情况下被删除,因为它会影响其他中间件


我已经为你的案子开了一个公关部

我遇到了相同的问题,req.body未定义。以下是我遵循的步骤:

1) 安装主体解析器

npm install body-parser
2) 您需要为每个模拟文件指定它需要的主体解析器。例如,my/server/mocks/addresses.js现在是:

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

  ...

  addressesRouter.post('/', function (req, res) {
    var address = req.body;
    address.id = addresses.length + 1;
    addresses.push(address);
    res.status(201).send({
      'address': address
    });
  });

  ...

    app.use('/api/addresses', require('body-parser').json(), addressesRouter);
因此,基本上您需要在最终的
应用程序中添加第二个(中间)参数
require('body-parser').json()


req.body现在应该可以工作,不再是未定义的。

我现在有这个问题,在它被修复几个月后。我不是做错了什么,就是被诅咒了。@MilkyWayJoe你按照我链接的PR中的说明做了吗?是的,我已经安装了body解析器,但我首先感到困惑,因为github中的线程有不同的设置方法。我想我现在明白了。忘记跟进了。我已经按照PR中提到的说明进行了操作,但是对于一个帖子,req.body仍然没有定义。我可以将整个请求记录到控制台上,控制台上有所有的标题等,但主体似乎不在那里。但是,浏览器控制台在网络请求中显示请求有效负载主体。对于GET req,参数工作正常。对于那些让它工作的人,除了在引用的pull请求中提到的内容之外,您还需要做其他事情吗?你知道我做错了什么吗?@Ian我用例子补充了一个答案,这有帮助吗?