在Express POST之后重定向到新的Mongo保存的ID?

时间:2019-04-11 18:12:46

标签: javascript mongodb express mongoose

在POST请求中,我正在将一个新文档保存到mongo数据库中。保存数据库后,是否可以将res.redirect重定向到该确切的文档ID?我不确定如何执行此操作。我找不到任何教程,文档或stackoverflow问题,这些问题似乎完全可以满足我的需求。

我可以做这样的事情吗? :id是我刚才保存在mongoose / mongo中的文档的ID在哪里?

newItem.save()。then(res.redirect('/ results /:id');

我希望用户提交帖子请求。我通过猫鼬将信息保存到mongo文档中。然后保存后,我想使用该页面上已保存项目的ID重定向到新URL。

1 个答案:

答案 0 :(得分:1)

当然可以。

save()方法可以接受回调,因此您可以获取已保存文档的_id字段。

一种方法是:

newItem.save((err, itemSaved) => {
    if(err) {
        next(err);
    }
    const itemId = itemSaved._id;
    res.redirect('/results/' + itemId);
});

希望这能解决您的问题。

PS

无需在重定向的路径上使用冒号。请注意,因为使用它会给您Cast Error