【问题标题】:Meteor Iron Router How to get POST dataMeteor Iron Router 如何获取 POST 数据
【发布时间】:2014-12-31 19:49:15
【问题描述】:

我正在尝试将 POST 数据从外部流星传递到 Iron Router 路由,但它不起作用。请求正文为空。

我已尝试输出请求正文以检查数据是否存在,但它只是空的。

Router.route('/api/gatewaysusers', function() {
        body = this.request.body;
        console.log(this.request)
        // this.response.write(body);
        this.response.end("Call served");


}, {where: 'server'})

有什么想法吗?谢谢。

【问题讨论】:

  • @ChristianFritz 这不是重复的。这里的代码完全没问题,问题出在iron-router 方面。
  • 对于来自 Google 的任何想要使用上述带有箭头功能的代码的人,您不需要从 this 获取 requestresponse。它们也被传递给回调。第一行可以改写为Router.route('/api/gatewaysusers', (request, response) => {

标签: javascript node.js meteor iron-router


【解决方案1】:

request.body 是空的,因为iron-router 缺少负责提取 url 编码数据的中间件。这是一个BUG,希望在以后的版本中解决。现在你可以添加:

Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
    extended: false
}));

在您的服务器上的某个地方,它应该可以正常工作。更多详情请关注here

【讨论】:

  • 这行得通,谢谢。现在我可以使用 this.request.body 获取 body。
  • 顺便说一句,this.request.body 现在有了所有预期的数据,无需额外调用。
  • @romaroma 你知道它是在哪个版本的 IR 中解决的吗?
  • @apendua 抱歉,不确定。我们在最近的项目中使用了 iron:router@1.0.12。
猜你喜欢
  • 2015-08-10
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2014-05-07
  • 2013-11-21
  • 1970-01-01
相关资源
最近更新 更多