我这里是这样的业务场景:
A使用匿名用户登录进入,他需要有一个与主题有关的名称,比如小白小黑.

考虑了几个问题:
我尝试在_User的beforeSave的时候修改username, 报错要求password不能为空,奇怪的是,username也报错,代码和报错如下:

(注意:usernam这个值是唯一的,)

AV.Cloud.beforeSave('_User', function(request) {

    var currentUser =  request.object;
if(currentUser.isAnonymous())
{
  var num =  Math.floor(Math.random() * 100);
  request.object.set('username','GGGG1234哈哈Test'); //
  request.object.set('password','123456');
   return request.object.save().then(function(user)  {
      console.log('ok!',user);
   });
}else
{
  console.log('不是匿名用户');
}

LeanEngine: /_User/beforeSave: 500: Error: Invalid username, it must be a non-blank string. [400 POST http://api.leancloud.cn/1.1/users]

不过显然这么做并不能解决这个场景.

我又考虑添加一个非唯一字段nickName来维护. 在beforesave的时候set,又出现一堆报错...代码和报错如下

 request.object.set('nickName','哈哈哈测试');


_previousAttributes: {},
STDOUT web1 00:15:21
child {
STDOUT web1 00:15:21
_serverData:
STDOUT web1 00:15:21
{ username: '0dl1b5lckq464j30ewjl3rqhl',
STDOUT web1 00:15:21
authData: { anonymous: [Object] },
STDOUT web1 00:15:21
mobilePhoneVerified: false,
STDOUT web1 00:15:21
__before: '1536423321518,0416cac44c56ee5142c48a459265e99ab8fe2708' },
STDOUT web1 00:15:21
_opSetQueue: [ {} ],
STDOUT web1 00:15:21
_flags:
STDOUT web1 00:15:21
{ __ignore_hooks: [ 'beforeSave', 'beforeUpdate', 'beforeDelete' ] },
STDOUT web1 00:15:21
attributes:
STDOUT web1 00:15:21
{ username: '0dl1b5lckq464j30ewjl3rqhl',
STDOUT web1 00:15:21
authData: { anonymous: [Object] },
STDOUT web1 00:15:21
mobilePhoneVerified: false,
STDOUT web1 00:15:21
emailVerified: false,
STDOUT web1 00:15:21
__before: '1536423321518,0416cac44c56ee5142c48a459265e99ab8fe2708' },
STDOUT web1 00:15:21
_hashedJSON:
STDOUT web1 00:15:21
{ authData: '{"anonymous":{"id":"43b2f2f8-c725-47d2-a985-795f9d688ed6"}}' },
STDOUT web1 00:15:21
_escapedAttributes: {},
STDOUT web1 00:15:21
cid: 'c1',
STDOUT web1 00:15:21
changed: {},
STDOUT web1 00:15:21
_silent: {},
STDOUT web1 00:15:21
_pending: {},
STDOUT web1 00:15:21
_hasData: true,
STDOUT web1 00:15:21
_sessionToken: '4prsql2lv07mv7th3rvdvqrxb' }
STDOUT web1 00:15:21
82
STDERR web1 00:15:21
at /home/leanengine/app/node_modules/leancloud-storage/dist/node/request.js:163:17
STDERR web1 00:15:21
at tryCatch (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:410:12)
STDERR web1 00:15:21
at invokeCallback (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:425:13)
STDERR web1 00:15:21
at publish (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:399:7)
STDERR web1 00:15:21
at publishRejection (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:340:3)
STDERR web1 00:15:21
at flush (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:128:5)
STDERR web1 00:15:21
at _combinedTickCallback (internal/process/next_tick.js:131:7)
STDERR web1 00:15:21
at process._tickCallback (internal/process/next_tick.js:180:9)
`

文档中对于匿名用户相关的介绍比较少.
请问
1. 这个报错是什么问题呢?
2. 这个场景你们有什么好的建议?

我没有在后面的日志里看到报错是什么

复制少了

LeanEngine: /_User/beforeSave: 500: Error: Invalid username, it must be a non-blank string. [400 POST http://api.leancloud.cn/1.1/users]
STDERR web1 00:06:37
    at /home/leanengine/app/node_modules/leancloud-storage/dist/node/request.js:163:17
STDERR web1 00:06:37
    at tryCatch (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:410:12)
STDERR web1 00:06:37
    at invokeCallback (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:425:13)
STDERR web1 00:06:37
    at publish (/home/leanengine/app/node_modules/leancloud-storage/node_modules/es6-promise/dist/es6-promise.js:399:7)