Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku错误代码H12 Node.JS出现问题,MongoDB atlas后端_Node.js_Mongodb_Heroku - Fatal编程技术网

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中设置环境变量。

希望这有帮助:)

您遇到此错误的原因可能是数据库不允许您进行任何更改。我建议使用以下方法捕获错误:

  • 检查日志
  • 查找每次尝试使用api端点时的ip地址

    例如

    我试图抬高IP地址,但没有显示。以fwd=“102.65.57.87”为例,然后将其添加到“网络访问”部分中允许的IP中

    如果允许IPs无效,请尝试以下操作:

    try {
      mongoose.connect(db, {
        useUnifiedTopology: true,
        useNewUrlParser: true
      });
      console.log('MongoDB is Connected...');
    } catch (err) {
      console.error(err);
      process.exit(1);
    }
    
    如果数据库出现错误,您将获得上述代码的信息,您可以更好地进行故障排除


    快乐编码

    虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,则仅链接的答案可能无效。