如何解决调用我的端点H12时Heroku超时,在本地服务器上完美运行
这里的总体菜鸟,目前正在学习node.js及其带来的所有乐趣。 我用node / express编写了一个REST API,在mongoDB中有一个数据库(在我的代码中是mongoose)。 该数据库是一个免费的数据库,托管在AWS上(通过mongoDB网站)。
我正在用邮递员呼叫以下端点:https://rewaer-backend.herokuapp.com/api/users/。
这是路线的样子:
// GET all users
router.get("/",async (req,res) => {
try {
const user = await User.find();
res.json(user);
}
catch (err) {
res.status(400).json({ message: err });
}
});
但是我从heroku中收到以下错误:
2020-10-07T14:39:58.684608 + 00:00 heroku [router]:at =错误代码= H12 desc =“请求超时”方法= POST路径=“ / api / users /” host = rewaer-backend.herokuapp.com request_id = 94d50342-514e-45e7-94ad-5cb1acde44fa fwd =“ 37.120.11.242” dyno = web.1 connect = 1ms服务= 30001ms status = 503字节= 0 协议= https
我的收藏集“用户”只有两组数据。另外,真的很小。在本地运行服务器(连接到AWS上的数据库)时,可以正常运行。正如您在我的代码中看到的那样,即使发生错误,我也应该返回一些东西。所以没有理由在这里超时。 Heroku日志显示与数据库的连接成功。
我不知道什么在这里行不通,谷歌无法进一步帮助我:因此,我问真正的智者;)
非常感谢您的帮助,
Clément
解决方法
MongoDB驱动程序中的默认服务器选择超时为30秒。 Heroku在其路由层中还有30秒的超时时间,供应用服务器生成响应。
- 将服务器选择超时更改为较低的值。
- 然后修复您遇到的MongoDB连接问题(可能是IP白名单)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。