我正在尝试做一个待办事项列表节点应用程序。我使用下面的代码来创建一个列表与一个特定的标题的情况下,它还没有被创建,并添加一些默认值;其中as,如果它已经被创建,则将执行到与它相关联的页面的重定向,并且与该列表相关联的所有任务将显示在页面上。
app.get("/:customListName", function (req, res) {
const customListName = req.params.customListName;
List.find({ name: customListName })
.then((listFound) => {
if (listFound.length === 0) {
const list = new List({
name: customListName,
items: defaultItems,
});
list.save();
console.log(
"list with a name of " + customListName + " has been created."
);
return res.redirect("/" + list.name);
} else {
return res.render("list", {
listTitle: listFound[0].name,
newListItems: listFound[0].items,
});
}
})
.catch((err) => {
console.log("Error faced while creating new list ===> " + err);
});
});
然而,第一次-当没有特定名称listFound
的列表时-它在MongoDB中创建了一个列表;尽管如此,find()
甚至findOne()
在第二次运行时也会返回null
,尽管之前已经添加了一个值。代码中的错误是什么,因为我只在列表创建后将其重定向到相关页面**一次。
1条答案
按热度按时间ctehm74n1#
你会发现调试你的代码越来越困难,因为你似乎是通过不分离你的HTTP动词来混淆你的逻辑。我的意思是你应该处理用
post
请求创建文档和用get
请求检索文档。你可以通过像这样分割你的逻辑来更好地利用express框架: