Node.js 当来自远程服务器时,Express无法将url与路由匹配

Node.js 当来自远程服务器时,Express无法将url与路由匹配,node.js,express,routing,Node.js,Express,Routing,我正在设置一个可以发布到远程服务器的站点。用户在此远程服务器上执行某些步骤,并在用户完成后执行。服务器向我的服务器发出带有一组查询参数的get请求 问题是这个请求永远不会到达它应该到达的控制器方法 我有一个自定义的中间件,可以拦截所有请求,我正在那里做一些登录,每次这个请求到达我的服务器时,我都可以看到那里,但是express似乎没有将它与控制器匹配 但是,如果我进入浏览器,使用完全相同的路径和查询字符串从那里执行请求,它就可以正常工作 我想可能远程服务器正在使用代理,所以我在express中启

我正在设置一个可以发布到远程服务器的站点。用户在此远程服务器上执行某些步骤,并在用户完成后执行。服务器向我的服务器发出带有一组查询参数的get请求

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

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

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

我想可能远程服务器正在使用代理,所以我在express中启用了信任代理,但这没有任何区别

我试过改变路线,但没有改变

我不知道什么代码会有用,因为它是相当标准的express代码。我尝试将路由放在所有中间件之前,请求仍然绕过控制器,并由我的日志中间件记录

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();
});
我完全困惑了,有人知道这是什么原因吗

编辑: 下面是我正在使用的一些代码。这不是我正在尝试的确切设置,但我已经尝试以这种方式工作,以排除我的路由逻辑,并且这个示例有完全相同的问题。我尝试将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();
});
以下是中间件记录来自远程服务器的请求的结果(我从请求查询中删除了记录的变量,因为它是敏感信息,它们会按预期的方式返回):


如果有人需要请求对象提供更多信息,我会提供。

您能发布有问题的路线吗?还有一些中间件设置?你说它“发布”到远程服务器,然后你说当你把“它放在浏览器中”时它工作,你是否也从浏览器发布,或者你是否提交了不同类型的HTTP请求(即POST vs GET)?我发布到远程服务器,远程服务器访问我的服务器,浏览器也访问我的服务器。我将用一些代码示例编辑我的问题。