Express来自远程服务器时,不会匹配url路由

时间:2015-05-21 17:04:06

标签: node.js express routing

我正在设置发布到远程服务器的网站。用户在此远程服务器上以及用户完成时执行一些步骤。服务器向我的服务器发出带有一堆查询参数的get请求。

问题是这个请求永远不会到达它应该的控制器方法。

我有一个拦截所有请求的自定义中间件,我正在那里进行一些登录,每当这个请求到达我的服务器时我都可以看到,但是表达似乎并没有将它与控制器匹配。

但是,如果我进入我的浏览器并使用完全相同的路径和查询字符串从那里执行请求,它可以正常工作。

我想也许远程服务器正在使用代理,所以我在快递中启用了信任代理,但这没有任何区别。

我尝试过改变路线路径并没有起到作用。

我不知道哪些代码会有用,因为它是非常标准的快速代码。我已尝试在所有中间件之前放置路由,并且请求仍然绕过控制器并由我的日志记录中间件记录。

我完全感到困惑,任何人都知道可能导致这种情况的原因是什么?

编辑: 以下是我正在使用的一些代码。这不是我尝试的确切设置,但我试图让它以这种方式工作以排除我的路由逻辑,这个例子有完全相同的问题。我尝试将app.get放在中间件之上,来自外部服务器的请求仍然绕过app.get并直接转到中间件。

app.use(function(req, res, next) {
    console.log('path', req.method, req.path, req.query);
 });

app.get('/payments/success', function (req, res) {
    console.log('SUCCESS', req.query);
    res.status(200).send();
});

以下是中间件记录从远程服务器到达的请求的结果(我删除了从请求查询中记录的变量,因为它是敏感信息,它们按照它们应该的方式返回):

path GET /payment/success { 
    variable: 'variable",
} 

如果有人需要来自请求对象的更多信息,我将提供它。

0 个答案:

没有答案