因此,当用户通过 Google、Twitter 或其他方式注册时,名称可能会重叠。在我的应用程序中,用户名具有唯一索引。由于每当有人第一次登录时都会将新文档放入集合中,因此有时唯一索引会失败。注册用户的代码如下所示:
module.exports.findOrCreateUser = (provider, id, data, done) ->
User.findByAuth provider, id, (err, user) ->
if err? then done err
else if user? then done null, user
else
user = new User
auth: [{id: id, provider: provider}]
name: data.name
email: data.email
user.save (err) ->
if err? then done err else done null, user
所以我在这里有两个问题:
- 如何检查是否
err
是唯一索引错误? - 将唯一后缀附加到用户名的最有效方法是什么?