使用铁路由器的Meteor Server api返回HTML而不是响应

问题描述 投票:1回答:1

我有一个简单的Meteor应用程序,只是基本的流星创建测试。我希望能够将流量路由到模板的“ /”目录。

我希望能够将数据从Facebook网络挂钩路由到简单的js响应。

我的问题是,当我使用邮递员启动网络挂钩URL时,它返回HTML而不是我的响应。

我为我读过的其他帖子尝试了许多不同的选项,但是现在有了最基本的版本才能使其正常工作。

这是我使用的代码

main.html中

<head>
  <title>test</title>
</head>
<body>
</body>

<template name="home">
  <form class="new-message">
    <input type="text" name="message" placeholder="Testing">
  </form>
</template>

main.js:

import { Meteor } from 'meteor/meteor';
import { Router } from 'meteor/iron:router';
import { Template } from 'meteor/templating';
import './main.html';

Router.route('/', function () {
  this.render('home');
});

Router.route('/webhooks/facebook', function() {
    var request = this.request;
    var response = this.response;

    response.end('webhook was called');
  }, {
    where: 'server'
  });

所有其他文件都是使用流星创建方式创建的。

我正在使用流星版本1.8.1

我正在使用邮递员来测试网络挂钩,这是创建的GET URL:https://------.ngrok.io/webhooks/facebook?hub.verify_token=mytoken&hub.challenge=1234567&hub.mode=subscribe

省略了代码,以防止ngrok受到抨击。

这是我得到的答复:

<html>

<head>
    <link rel="stylesheet" type="text/css" class="__meteor-css__"
        href="/merged-stylesheets.css?hash=6b1f9f6fb78291ae58da8ec4f36476931155453c">
    <title>simplechat</title>

</head>

<body>
    <script type="text/javascript">
        __meteor_runtime_config__ = JSON.parse(decodeURIComponent("%7B%22meteorRelease%22%3A%22METEOR%401.8.1%22%2C%22meteorEnv%22%3A%7B%22NODE_ENV%22%3A%22development%22%2C%22TEST_METADATA%22%3A%22%7B%7D%22%7D%2C%22PUBLIC_SETTINGS%22%3A%7B%7D%2C%22ROOT_URL%22%3A%22http%3A%2F%2Flocalhost%3A3000%2F%22%2C%22ROOT_URL_PATH_PREFIX%22%3A%22%22%2C%22autoupdate%22%3A%7B%22versions%22%3A%7B%22web.browser%22%3A%7B%22version%22%3A%22b22f1ad86c0a904c992885256b7de72ed2863e1d%22%2C%22versionRefreshable%22%3A%22a580e09175421ec6994fc6da61a0413f3a15d2b1%22%2C%22versionNonRefreshable%22%3A%22fc4ded0006de942fe57524f94d500abeb4569d6f%22%7D%2C%22web.browser.legacy%22%3A%7B%22version%22%3A%222571a76ffc344fbc5b40ade303255cbbc59e2682%22%2C%22versionRefreshable%22%3A%22a580e09175421ec6994fc6da61a0413f3a15d2b1%22%2C%22versionNonRefreshable%22%3A%22dc1e886b7786e303655c010220e9f502e82dcf1c%22%7D%7D%2C%22autoupdateVersion%22%3Anull%2C%22autoupdateVersionRefreshable%22%3Anull%2C%22autoupdateVersionCordova%22%3Anull%2C%22appId%22%3A%22zqskgg1xifoj.hlnqbjmcma6f%22%7D%2C%22appId%22%3A%22zqskgg1xifoj.hlnqbjmcma6f%22%2C%22isModern%22%3Afalse%7D"))
    </script>

    <script type="text/javascript" src="/packages/meteor.js?hash=857dafb4b9dff17e29ed8498a22ea5b1a3d6b41d"></script>
    <script type="text/javascript" src="/packages/meteor-base.js?hash=29010b127daf4ebacaaf9db9b8a61487e57d7d86">
    </script>
    <script type="text/javascript" src="/packages/mobile-experience.js?hash=2751f9ec11102d1106042c462b340c3fcfcb1990">
    </script>
    <script type="text/javascript" src="/packages/modules-runtime.js?hash=d3c3e5d67c95f97a60888bda7373292efad3be5e">
    </script>
    <script type="text/javascript" src="/packages/modules.js?hash=e8b7455d5562fec1444a3c6882cdc6639055cfca"></script>
    <script type="text/javascript" src="/packages/modern-browsers.js?
    <script type="text/javascript" src="/packages/autoupdate.js?hash=6d56c0f3a885390c688b4f3f893d96d1280fd0ee"></script>

---- Cut out all of the other script calls to keep this short -----

    <script type="text/javascript" src="/app/global-imports.js?hash=1f8a1ae2e343994912f72f1dc6eec1ca7df24cae"></script>
    <script type="text/javascript" src="/app/app.js?hash=70cfa37cd2f85e533f69d7312d02ef8984eae01a"></script>

</body>

</html>

所以基本上它返回HTML。

我确定我缺少简单的东西。

谢谢您的帮助。通常,我等到我用尽所有其他选项后再在此处发布。而且我确定我已经尝试过StackOverflow此处给出的所有其他示例。

我想要的结果很简单,只需返回一个HTTP响应“ webhook被调用”,而不是返回HTML垃圾。

rest api meteor router iron
1个回答
0
投票

很长一段时间没有使用铁路线,但是从我记得起,您希望将服务器端路线更改为以下路线,因为它是宁静路线。

Router.route('/webhooks/facebook', { where: 'server' })
    .get(function () {
    // GET 
  })
  .post(function () {
    // POST 
  })
  .put(function () {
    // PUT 
  })
© www.soinside.com 2019 - 2024. All rights reserved.