To Do リスト アプリを作成しており、'Express Route Parameters' を使用してカスタム ルートを含めようとしています。この時点までプログラムは問題なく動作していましたが、これらのカスタム パスを導入してコンソールにログを記録したり、データベースに追加しようとするとすぐに、最初のパスが 2 回追加されるか、2 回ログに記録されます。ただし、後で追加されたパスは複製されません。
app.get("/:customListName", function(req,res)
{
console.log(req.params.customListName);
/*const list = new List
({
name: customListName,
items: defaultItems
});
list.save();*/
});
たとえば、追加されたカスタム パスの名前が「home」、つまり「localhost:3000/home」で、パスの名前を console.log に記録しようとすると、「home」が 2 回出力されます。後で「work」、「new」などのパスを追加すると、それらは一度だけ追加(および印刷)されます。時々、このエラーも発生します:
BulkWriteError: E11000 duplicate key error collection: wolDB.items index: _id_ dup key: { _id: ObjectId('5ef4ad2110f45d54f143fa19') }
データベースを削除して、新たに開始し、インデックスを削除しようとしましたが、新しいデータベースでも試しました。しかし、データベースにプッシュしなくても問題が解決しないため、問題はデータベースにないようです。全体を新たにコーディングしてみましたが、問題は解決しません。
私はマングースのfindOne()も試しましたが、指定されたルートが存在するかどうかを出力しようとすると、最初のルートでは「存在します」と2回出力されます。
List.findOne({name: customListName}, function(err, foundList)
{
if(!err)
{
if(!foundList)
console.log("Doesn't exist");
else
console.log("Exists");
}
});
GitHub リンクは次のとおりです: https://github.com/sebanti10/todolist.git