Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js:Mongoose模式默认的rand-tokens不是随机的大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的UserscheR_749_11845@a,我似乎无法生成独特的随机activation_token.

我正在使用Rand-token进行生成. Found here.

var UserscheR_749_11845@a = new scheR_749_11845@a({
        activation_token: {
            type: String,default: randToken.generate(64),},email: {
            type: String,unique: true,sparse: true
        },first_name: {
            type: String
        },last_name: {
            type: String
        }
});

似乎工作正常,但在使用Mocha运行单元测试时,所有的activation_token字段都是相同的.我最初认为这与时间有关,因为这可能是用于生成令牌的内容.对于每个新文档,时间戳可能是相同的,所以我使用一个函数生成了一些测试,这个函数一个一个生成了大约30个令牌,并且它们不相似.

关于这里发生了什么的任何想法?

以下是该问题的一些示例:

{
    "_id": {
        "$oid": "555dfd137c914edc1b41bbda"
    },"email": "oka@haek.io","first_name": "Lenora","last_name": "Aguilar","date_added": {
        "$date": "2015-05-21T15:43:01.576Z"
    },"activation_token": "EyBNwu4vxOIXMzj7W5kVOeICfWwxfjXmHkz7ZPHLjkf0MU86QM2aIKNDyvI2ymTR","__v": 0
},{
    "_id": {
        "$oid": "555dfd107c914edc1b41bbd6"
    },"email": "ediuki@mu.edu","first_name": "Eugene","last_name": "Green","__v": 0
}

解决方法

它们都是一样的,这是有意义的.您在模式定义时调用生成一次,并且您将该调用的结果提供给mongoose模式定义,而不是函数本身.你可以尝试这样的事情:

var UserscheR_749_11845@a = new scheR_749_11845@a({
    activation_token: {
        type: String,default: function() {
            return randToken.generate(64);
        }
    },email: {
        type: String,sparse: true
    },first_name: {
        type: String
    },last_name: {
        type: String
    }
});

大佬总结

以上是大佬教程为你收集整理的Node.js:Mongoose模式默认的rand-tokens不是随机的全部内容,希望文章能够帮你解决Node.js:Mongoose模式默认的rand-tokens不是随机的所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。