Node.js Express端点不反映更改。奇怪的行为

Node.js Express端点不反映更改。奇怪的行为,node.js,typescript,express,Node.js,Typescript,Express,我有一个express应用程序,我正在用它编写API,但目前遇到了一些非常奇怪的行为 我更改了一个GET路由,当我调用该路由时,这些更改不会显示出来。我使用nodemon,因此更改应该自动更新,但即使手动重新启动服务器也不起作用。我尝试了以下方法,得到了非常奇怪的结果: 如果我在方法的最开始添加一个console.log(),然后调用该路由,则控制台中不会显示任何内容 如果我完全删除app.get()方法并调用该路由,响应仍然会弹出,而不是404 如果我将路由的名称(例如从“/hello”更改

我有一个express应用程序,我正在用它编写API,但目前遇到了一些非常奇怪的行为

我更改了一个GET路由,当我调用该路由时,这些更改不会显示出来。我使用nodemon,因此更改应该自动更新,但即使手动重新启动服务器也不起作用。我尝试了以下方法,得到了非常奇怪的结果:

  • 如果我在方法的最开始添加一个
    console.log()
    ,然后调用该路由,则控制台中不会显示任何内容
  • 如果我完全删除
    app.get()
    方法并调用该路由,响应仍然会弹出,而不是404
  • 如果我将路由的名称(例如从“/hello”更改为“/helloWorld”,则响应仍然是旧的,没有反映出更改。无论我调用“/hello”或“helloWorld”,我都会从“/hello”得到相同的旧响应,即使“/hello”不应该再存在
  • 如果我将
    app.get
    更改为
    app.post
    并发出post请求,则响应现在会显示所做的更改。但如果我发出get请求,则响应会恢复为旧响应,即使此路由不应再存在
  • 对其他路由进行更改确实反映了调用它们的时间。这只是此路由
有没有其他人见过这种行为?如果有,你是怎么解决的

我想我可以将方法更改为POST,并使请求主体为空,但我希望在反映更改的情况下使其正常工作

编辑:示例路线:

app.get('/hello', (req: Request, res: Response) => {
    console.log("hello"); //added line
    pool.query("SELECT * FROM table", async (err: MysqlError, result: any) => {
       if (err) {
           res.status(500).send({ message: err.message, code: err.code });
           return;
       }
       res.send(result);
    });
})

在上面的代码中,当我调用/hello路由时,我没有看到控制台上打印的“hello”或我所做的任何其他更改。

发生这种情况的原因是因为我有一个路由正在查找参数(
/:id
)在这段代码上面的端点。这意味着我试图点击的端点永远不会被点击,因为它会被它上面的端点阻止而永远不会继续。要修复它,我只需将包含参数的路由移动到我试图点击的端点下方。

我只能猜到你的代码是什么样子。为什么不为mi发布代码呢nimal应用程序,它复制了这个所谓的GET路线,不知何故它不会被改变?而且--它听起来隐约像是缓存。浏览器开发工具对发生的事情怎么说?你好,Wyck-我添加了一些代码让你看。我试着在postman和普通浏览器中进行调用,两者都显示了正常的事情。我还我对其他路由所做的更改确实表明,正是这条路由引起了头痛。您是否正在运行您认为自己是的代码?请从开始。
curl localhost:3000
将返回hello消息。然后将路由从
/
更改为
/hello
,然后重新启动应用程序。然后您应该能够演示
curl localhost:3000
将返回一个错误而不是hello消息,并且
curl localhost:3000/hello
将返回hello消息。您的应用程序中可能有其他导致问题的代码。这对我来说都是正确的。事实上,当我对代码中的其他路由执行此操作时,它甚至是正确的。这是错误的只有这一条路线不起作用