Javascript Express js,第二次获取相同路由的请求始终挂起

Javascript Express js,第二次获取相同路由的请求始终挂起,javascript,node.js,express,Javascript,Node.js,Express,我正在开发一个express应用程序,其中需要呈现“/”路由的登录页。此页面有一个文本框和一个按钮。当用户向文本框添加文本并点击提交按钮时,我需要向同一url发出请求,但添加文本作为其查询参数。此请求将呈现一个新页面,其内容取决于查询文本 现在发生的事情是,当用户将文本输入文本框并按下按钮时,表单发出GET请求,路由看起来像http://localhost:3000/?q=abc。我可以在chrome开发者工具的网络标签中看到这个请求,但这个请求从未到达服务器。我在服务器控制台中看不到对/?q=

我正在开发一个express应用程序,其中需要呈现“/”路由的登录页。此页面有一个文本框和一个按钮。当用户向文本框添加文本并点击提交按钮时,我需要向同一url发出请求,但添加文本作为其查询参数。此请求将呈现一个新页面,其内容取决于查询文本

现在发生的事情是,当用户将文本输入文本框并按下按钮时,表单发出GET请求,路由看起来像
http://localhost:3000/?q=abc
。我可以在chrome开发者工具的网络标签中看到这个请求,但这个请求从未到达服务器。我在服务器控制台中看不到对
/?q=abc
的任何请求

如果我重新启动服务器,然后打开
http://localhost:3000/?q=abc
,在浏览器中加载正确的内容。但是如果我把url改回
http://localhost:3000
,我可以在“网络”选项卡中看到挂起的请求,而此请求从未到达服务器

我的代码看起来像:

app.get('/', function(req, res, next) {
  if(req.query.q) 
    res.render('results.ejs');
  else
    res.render('landing.ejs')
});

知道为什么没有呼叫服务器吗?我花了一整天的时间试图找出这种行为的原因。非常感谢您的帮助。

您是否尝试过插入临时中间件以查看请求在中间件/路由链中的具体位置?听起来好像有一个中间件在某些情况下没有调用
next()

听起来第一个响应永远不会结束。尝试为渲染提供回调
函数(err,html){}
,然后查看
err
是否为空。是否尝试插入临时中间件以查看请求在中间件/路由链中的确切位置?听起来好像有一个中间件在某些情况下没有调用
next()
。您是否可以尝试替换
res.render('results.ejs')通过
res.render('results')
res.render('landing.ejs')
by
res.render('landing')
@mscdex:没错,我的一个中间件有时没有调用
next()
。该中间件同步向其他api发出http请求。每当远程api关闭时,都不会调用来自此中间件的
next()
。处理这种情况解决了我的问题。你可以加上这个作为答案,这样我就可以接受了。谢谢