使用meteor监听webhook服务器端

时间:2015-03-19 22:30:12

标签: javascript node.js meteor routing

我使用iron-router设置了一个流星应用程序,我希望该应用程序能够收听来自其他服务的webhook(基本上我正在为其他服务构建API)

因此,例如,当外部网站调用myapp.meteor.com/webhook时,我想捕获该特定链接和参数并对数据进行处理。

更新:感谢您的评论,我发现了这一点:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#server-routing

Router.route('/webhooks', { where: 'server' })
  .post(function () {
    console.log(this);
    this.response.end('Caught you\n');
    //this.response.status(200).json({text:"Todo added"});
});

我在/server文件夹中添加了上述内容,因为前端服务器无需像评论中提到的那样担心这一点。但是当我使用postman POST请求加载它时,它只返回not found的HTML。有任何想法吗?

提前感谢您的帮助。

更新 我尝试了@David所说的,但我仍然在控制台中加载了模板。知道我做错了什么吗?

Code in router

1 个答案:

答案 0 :(得分:1)

只有在没有客户端路由匹配时,您的服务器路由才会运行。我怀疑你有一个在客户端上执行的catch-all路由并阻止服务器路由运行。一种解决方案是在/lib这样的公共文件夹中定义所有路由,以便您可以正确地对它们进行排序。您的路线文件可能类似于:

  • 客户路线1
  • 客户路线2
  • 服务器路线1
  • 服务器路线2
  • catch-all(not found)route