簡體   English   中英

流星:Accounts.createUser引發異常:meteor.roles。$ name_1 dup key

[英]Meteor: Accounts.createUser throws exception: meteor.roles.$name_1 dup key

嘗試將新用戶添加到注冊時的users集合。

在Meteor的客戶端,我調用服務器方法將用戶添加到users集合

Meteor.methods({
    createUserServer : function (user) {

        // On server-side, Accounts.createUser is essentially
        // blocking (Fibers): it waits for the user to be
        // created, and then returns its newly generated id.
        try {
            var userId = Accounts.createUser(user)
            console.log('user ID: ' , userId);
            return { success:true , message : userId }
        } catch (e) {
            console.log('Meteor Exception: ',e);
            return { success : false , message : e.reason }
        }






    }
})

這種添加僅在第一次users集合上很好地發生,但是在那之后,我得到了這個異常:

Meteor Exception: { [MongoError: insertDocument :: caused by :: 11000 E11000 duplicate key error index: meteor.roles.$name_1 dup key: { : null }] stack: [Getter] }

我檢查了數據庫上的roles集合,發現只有一個文檔:

db.roles.find() ->返回-> { "_id" : "whef5ZW8sBchDWBuH", "userId" : "WNM7gYDusa2dJY8wd", "roles" : [ ] }

我不確定這是什么類型的問題?

我知道了。

由於某種原因, name文檔被制成索引並且是唯一的,這導致了上述沖突,通過刪除該索引,現在一切正常:

Meteor.roles._ensureIndex('name', {unique: 1})

現在我很高興:)

參考: https : //github.com/orionjs/orion/issues/239

暫無
暫無

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

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