簡體   English   中英

如果沒有創建文檔,請檢查文檔是否已存在

[英]Check if document already exists if not create one

我正在學習expressjs + mongo。 我想在用戶使用護照通過Steam登錄后檢查,如果他的數據已經在數據庫中,如果不是為他創建記錄。

為此我在schema中創建了一個靜態方法。 不幸的是,我無法從內部拯救。

TypeError:Object#沒有方法'create'

SteamAccountSchema.statics.checkAccount = function(identifier){
this.findOne({ 'identifier' : identifier }, function(err, account){
    if(err) throw err;
    console.log("Checking account:" + account)
    if(account) {
        console.log("user already in db")
        return true
    } else {
        console.log("Creating new user account")
        this.create({
            name : 'username',
            identifier: identifier
        }, function(err){
            if(err) throw err;
            // if (err) return done(err);
            return false
        });
    }
}); 

}

只需緩存對象即可。 即在下面的代碼中, self指向您需要的內容:

SteamAccountSchema.statics.checkAccount = function(identifier){
    var self = this;
    this.findOne({ 'identifier' : identifier }, function(err, account){
        if(err) throw err;
        console.log("Checking account:" + account)
        if(account) {
            console.log("user already in db")
            return true
        } else {
            console.log("Creating new user account")
            self.create({
                name : 'username',
                identifier: identifier
            }, function(err){
                if(err) throw err;
                // if (err) return done(err);
                return false
            });
        }
    }); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM