Heroku错误代码H12 Node.JS出现问题,MongoDB atlas后端
问题:Heroku错误代码H12 Node.JS出现问题,MongoDB atlas后端,node.js,mongodb,heroku,Node.js,Mongodb,Heroku,问题: 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);
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);
}
});
}
});
我在检查Heroku日志时出错:
code=H12 desc=“Request timeout”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 connect=0ms service=30001ms status=503 bytes=0 protocol=https.
我所做的:
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);
}
});
}
});
我检查了文档并安装了整个系统。检查应用程序。但是,每次我尝试从列表中删除一个项目时,应用程序都会崩溃,并出现H12错误。
我检查了Mongo DB Atlas中的数据库,该项目被删除,因此该页面没有正确重定向。您可以看到,当您手动重新加载页面时,它会相应地呈现。我如何解决这个问题
使用NodeJS、Express、body解析器、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)
任何帮助都将不胜感激 我也有类似的错误。我找到了一个链接。 请参阅此链接,它包含mongodb atlas和node js的整个设置过程。
很可能您忘了在heroku中设置环境变量。
希望这有帮助:)您遇到此错误的原因可能是数据库不允许您进行任何更改。我建议使用以下方法捕获错误:
try {
mongoose.connect(db, {
useUnifiedTopology: true,
useNewUrlParser: true
});
console.log('MongoDB is Connected...');
} catch (err) {
console.error(err);
process.exit(1);
}
如果数据库出现错误,您将获得上述代码的信息,您可以更好地进行故障排除
快乐编码 虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,则仅链接的答案可能无效。