首页 > 解决方案 > 如何检查对象是否已经创建?

问题描述

您好,我想检查是否创建了对象。如果它已创建,则重定向到 id 页面,但如果未创建,则重定向到创建它的页面。

这是我的应用程序

app.get('/my',isLoggedIn,async (req,res)=> {
    const safe= await Safe.find({});
    if(safe===undefined){
        res.redirect('/mysafe')
    }
    else {
         res.redirect(`mysafe/${safe._id}`)
    }
})

我认为它应该可以工作,但我得到一个转换错误 CastError: Cast to ObjectId failed for value "undefined" (type string) at path "_id" for model "Safe"

标签: javascriptmongodbexpressejs

解决方案


你只需要翻转你的条件并if(safe)用作条件。如果对象已创建,则为 true,否则为 false。类似于以下内容:

app.get('/my', isLoggedIn, async (req,res) => {
    const safe= await Safe.find({});
    if(safe){
        res.redirect(`mysafe/${safe._id}`)
    } else {
        res.redirect('/mysafe')
    }
})


推荐阅读