【问题标题】:Express not sending or not reaching route快递未发送或未到达路线
【发布时间】:2018-02-08 14:56:19
【问题描述】:

我有一个相当大的文件库,所以很难显示所有内容。

我有一个带有一些路由的快速服务器,其中一个是 POST /set 路由。几乎每次我尝试向服务器发布一些东西时,我都没有得到任何响应,事实上,我在 /set 中做的第一件事就是记录一个简单的 hello,它似乎甚至没有到达路由。我正在使用 Morgan 记录器来记录请求,这就是它显示的内容:

前几个请求通过但不是特定的路线。以及其他路线之后工作。这在这条路线上经常发生,但偶尔会在其他路线上发生,每当发生这种情况时,我都会收到“ERRCONRESET”错误。发生这种情况时,如果我在第一次失败后的几秒钟内立即发送请求,它将通过。

任何建议将不胜感激。

缺少代码是因为它没有到达路由,它可能会因为中间件或快递而断开连接,但没有记录错误。对于中间件,我使用“bodyParser”、“session”、“cookieParser”、“helmet”、“morgan”、“gzip”和“passport”。此路由也没有应用身份验证中间件。

【问题讨论】:

  • 我了解您的文件库很大,但我无法根据 2 行代码提出建议。你能提供整个路线代码吗?另外,前几个请求通过了吗?能否举一个代表成功执行的代码示例?
  • 好吧,我只展示了路线以表明我正在记录你好。该应用程序甚至没有走到这一步。它没有记录你好,所以在这条路由甚至被调用之前就发生了一些事情,也许中间件可能会导致这种情况。对于中间件,我有“bodyParser”、“session”、“cookieParser”、“helmet”、“gzip”和“passport”
  • 知道了。更重要的是,如果您怀疑问题存在于特定的代码区域,您应该发布该问题。否则我们都会吐口水,这对任何人都无济于事。
  • 我知道它不是很有用,但这实际上是我正在寻找的。我不知道发生在哪里或为什么会发生这种情况。我希望其他人也遇到过类似的问题,并且可以解释他们为解决问题所做的工作。我想如果我想要什么,除了在黑暗中猜测,我将不得不上传我所有的代码,这是不可能的,所以我愿意接受任何建议。
  • 在您列出的中间件中,我唯一遇到过类似问题的是 bodyParser。无论是编码还是类型json等,但不看代码就不可能给出更多建议。祝你好运。

标签: node.js express post routes morgan


【解决方案1】:

我认为 express 不会结束你的请求,因为你从不发送任何东西;所以请求超时。

尝试发送一个简单的字符串而不是什么都不做:

  app.post('/set', (req, res) => {
    res.send('hello');
  });

【讨论】:

  • 它确实会在稍后发送响应。如果路由被调用,它首先会在输出中记录“hello”,然后 yes 会超时(如果它从不返回响应),但它永远不会到达路由中第一行的日志。
  • 当我没有发送响应时,我重现了超时,但日志“你好”显示得很好。所以问题必须来自您的代码的另一部分,或来自中间件...检查您的应用程序中是否没有其他路由'/set',或尝试发布最小代码以重现问题...
  • 您确定您的 console.log() 已写入 Morgan 日志文件吗?
  • 没有日志文件,全部发送到stdout。
猜你喜欢
  • 2021-02-25
  • 1970-01-01
  • 2014-04-01
  • 2017-04-25
  • 1970-01-01
  • 2019-06-06
  • 2021-11-24
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多