uuid
功能
生成唯一的一个字符串
至于唯一性,我也怀疑过,参考[1],主要有5种用法
- (1)基于时间的
- (2)DCE安全的
- (3)基于名字的
- (4)随机的
- (5)基于名字的(SHA1)
uuid模块
用法
参考[1],有5种用法
- v1:基于时间的
> uuid.v1()
'3be65050-3a6c-11ea-9a1c-a770f4b5f889'
- v2:DCE安全的
测试的时候说找不到,没去求证一下咋样,暂时不需要 - v3:基于名字的
用相同的名字,会生成相同的uuid出来
> var v3 = require('uuid/v3')
undefined
> console.log(v3('Hello, World!', MY_NAMESPACE1));
114e1c3c-a1c9-34d4-95e3-9038ea162be9
undefined
>
- v4:随机的
> uuid.v4()
'9f2e4328-c171-4c83-b063-71cb6bae9cfa'
- v5:基于名字的(SHA1)
> var v5 = require('uuid/v5')
undefined
> console.log(v5('Hello, World!', MY_NAMESPACE1));
92d6b5a2-22da-5c5c-b93b-0a59d45a961a
undefined
> console.log(v5('Hello, World!', MY_NAMESPACE1));
92d6b5a2-22da-5c5c-b93b-0a59d45a961a
node-uuid模块
> var nodeuuid = require('node-uuid')
undefined
> nodeuuid.v1()
'83336050-3a6d-11ea-9541-6313a4ec04df'
> nodeuuid.v2()
Thrown:
TypeError: nodeuuid.v2 is not a function
> nodeuuid.v3()
Thrown:
TypeError: nodeuuid.v3 is not a function
> nodeuuid.v4()
'd66bbcb7-d359-4ff2-a5ba-094926a8a2f1'
> nodeuuid.v5()
Thrown:
TypeError: nodeuuid.v5 is not a function
> var nodeuuidv3 = require('node-uuid/v3')
Thrown:
E:\work\git\MiniServer\miniserver\node_modules\node-uuid\v3.js:7
if (typeof(name) != 'string) {
^^^^^^^^^^
SyntaxError: Invalid or unexpected token
>
小结
- 根据不同的功能选择不同的用法
(1)比如用户ID这种,最好就用v3/v5,因为如果作为唯一key的话,必须要是一样的;
(2)如果是临时的,可以用v1或者v4的,比如在处理消息队列的时候,你需要一个uuid临时处理一次请求/响应的功能,可以生成一个功能,用完后面就不需要了 - node-uuid只支持v1和v5,而想要v3或者v5的话,用uuid模块
参考
来源:CSDN
作者:上山老人
链接:https://blog.csdn.net/pkxpp/article/details/104057407