我们如何在mongoose中检索一个存在的布尔值?

iaqfqrcu  于 2023-01-02  发布在  Go
关注(0)|答案(2)|浏览(161)

我试图检查是否有一个帐户与相同的用户名已经存在或不存在。我正在使用exist方法来检查,但我一直得到一个大的对象,而不是一个布尔值。

async checkExisting(username,userCollection) { //WORK ON ISSUE WITH VERIFYING
        const check = new Promise((resolve,reject) => {
            let value = userCollection.exists({username})
            console.log(value);
            // if(userCollection.exists({username})) {
            //     reject("Username taken")
            // }

            resolve("Username avaliable")
        })

        return check;
    },
jtoj6r0c

jtoj6r0c1#

userCollection.exists({username})返回一个您从未运行过的查询。您需要实际执行它并等待结果。还要避免Promise constructor antipattern

async checkExisting(username,userCollection) {
    const check = await userCollection.exists({username})
    if (check) {
        throw new Error("Username taken");
    }
    return "Username avaliable";
},
epggiuax

epggiuax2#

Object和布尔值之间有什么问题?

  • 您可以通过检查!!userCollection.findOne({username})来检查使用此用户名的用户是否存在。
  • 你可以在mongoose中使用静态方法来 Package 它,使它可以重用!

我发现很多开发者都用这个,所以我认为这很正常。

相关问题