如何检查一个对象是否已经创建?

How to check if an object has been already created?

您好,我想检查是否创建了一个对象。如果它已创建,则重定向到 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:模型“Safe”的路径“_id”处的值“undefined”(类型字符串)转换为 ObjectId 失败

你只需要翻转你的条件并使用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')
    }
})