环回使用mysql生成唯一编号,没有重复

时间:2019-03-04 06:35:14

标签: loopbackjs

我对环回很陌生。 我想创建随机唯一号,并确保它不存在于数据库中。如果它已经存在于我的数据库中,那么我将不得不再次生成该数字,直到它唯一为止。 因此,在我的模型中,我还放置了唯一索引,但是问题是,如果它是唯一的,它将显示错误并停止我的过程,但是我想重复这样做。

为了生成随机数,我使用了 randomstring 库。

这是我的代码

1)我的远程方法

Testdata.remoteMethod(
'uniqueNumber', {
    http: {
                    path: '/uniqueNumber',
                    verb: 'post',
                    status: 200,
                    errorStatus: 400
                },
                accepts: [
                    {
                        arg: 'data',
                        type: 'object',
                        http: {
                            source: 'body'
                        }
                    }
                ],
                returns: {
                    arg: 'status', type: 'string'
                }
            }
    );

Testdata.uniqueNumber = function (data, cb) {
        var len = 3;
        var fname = data['fname'].substring(0,3);   
        var randomstring = require("randomstring");
        var randomString = randomstring.generate({
            length: len,
            charset: 'numeric', 
        }); 
        var _referralcode = fname +""+ randomString;

        //now update customer 
        var createArray = {"referralcode": _referralcode}
        Testdata.create(createArray, function (err, result) {
            if (err) { 
                return cb(err);
            } 
            cb(null,result)
        })
    }

0 个答案:

没有答案