提问者:小点点

快速路由参数创建重复的自定义路径


我正在创建一个待办事项列表应用程序,我正在尝试包括自定义路线使用‘快速路线参数’。 在此之前,程序一直运行得很好,但是当我尝试引入这些自定义路径并将其记录到控制台,甚至将其添加到数据库时,第一条路径就会被添加两次或记录两次。 但是,后面添加的路径并不重复。

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”。 稍后,如果我添加“work”,“new”等路径,它们只添加(并打印)一次。 有时也会出现此错误:

BulkWriteError:E11000重复密钥错误集合:woldb.items索引:_id_dup密钥:{_id:ObjectId('5ef4ad2110f45d54f143fa19')}

我已经尝试删除数据库并重新启动,删除索引,甚至尝试使用新的数据库; 但问题似乎不在数据库中,因为即使不将其推送到数据库中,问题仍然存在。 我尝试重新编写整个代码,但问题仍然存在。

我也尝试过mongoose的findOne(),但是当我尝试打印给定路由是否存在时,对于第一个路由,它只打印了两次“exists”。

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


共1个答案

匿名用户

如果您不需要该列表,并且希望直接保存到数据库,请尝试使用

List.create({
        name: customListName,
        items: defaultItems
    })