首页 > 解决方案 > Express 端点不反映更改。奇怪的行为

问题描述

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

我对我的一条 GET 路由进行了更改,当我调用该路由时没有显示更改。我使用 nodemon 所以更改应该会自动更新,但即使手动重新启动服务器也不起作用。我已经尝试了以下事情并且得到了非常奇怪的结果:

有没有其他人见过这种行为?如果是这样,你做了什么来修复它?

我想我可以将方法更改为 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”或我所做的任何其他更改。

标签: node.jstypescriptexpress

解决方案


/:id发生这种情况的原因是因为我有一条路线在此代码上方的端点中寻找参数 ( )。这意味着我试图击中的终点永远不会被击中,因为它会被它上面的那个停止并且永远不会继续。要修复它,我只需将包含参数的路线移动到我试图击中的路线下方。


推荐阅读