node.js - Node.JS 的 Heroku 错误代码 H12 问题,MongoDB 地图集的后端
问题描述
问题:
检查 Heroku 日志时出现此错误:
code=H12 desc="请求超时" method=POST path="/delete" host=dry-falls-65221.herokuapp.com request_id=0d934a3c-84ea-4e7d-aa53-f437830b807e fwd="136.36.41.157" dyno=web .1 连接=0ms 服务=30001ms 状态=503 字节=0 协议=https。
我做了什么:
我检查了文档并安装了整个东西。在此处检查应用程序。但是,每次我尝试从列表中删除一个项目时,应用程序都会崩溃并出现 H12 错误。我检查了 Mongo DB Atlas 中的数据库,该项目被删除,所以它的页面没有正确重定向。您可以看到,当您手动重新加载页面时,它会相应地呈现。我该如何解决这个问题?
使用 NodeJS 的代码部分,还有 Express、body-parser、mongoose、lodash:
app.post("/delete", function(req, res) {
const checkedItemId = req.body.checkbox;
const listName = req.body.listName;
if (listName === "Today") {
Item.findByIdAndRemove(checkedItemId, function(err) {
if (err) {
console.log(err);
} else {
console.log("Deleted!");
}
});
} else {
List.findOneAndUpdate({name:listName},{ $pull: {items: {_id: checkedItemId}}}, function (err, foundList) {
if(!err) {
res.redirect("/" + listName);
}
});
}
});
我还附上了 HTML 部分(使用了 EJS)
<% newListItems.forEach(function(item) { %>
<form class="item" action="/delete" method="post">
<div class="item">
<input name="checkbox" value="<%=item._id%>" type="checkbox" onChange="this.form.submit()">
<p><%= item.name %></p>
</div>
<input type="hidden" name="listName" value="<%= listTitle %>">
</form>
任何帮助将非常感激。
解决方案
我有类似的错误。
我找到了一个链接https://dev.to/cpclark360/how-to-host-a-restful-node-js-server-with-mongodb-atlas-database-on-heroku-1opl。请参阅此链接,它具有 mongodb atlas 和 node js 的完整设置过程。
很可能您忘记在 heroku 中设置环境变量。
希望这可以帮助 :)
推荐阅读
- python-3.x - 如何通过参数化初始化webdriver
- ios - 如何取消 AWSTask
要求? - c# - C# Web API - 仅带有 ID 的 POST
- android - 带有 shell 脚本的 Android Studio gradle 自定义任务在构建时不起作用
- excel - VBA Excel:将范围内容放入数组时出现运行时错误13 - 长单元格内容
- java - 上传大文件时OOM
- azure - 如何添加/使用构建标签?
- c# - 逐步调试时覆盖 ToString() 无法正常工作
- ms-access - 如何将电子邮件导入 ms access 并将其附件保存到可以通过 access 引用的网络驱动器
- c++ - substr 会改变 find 函数开始搜索的位置吗?