译自 https://www.npmjs.com/package/uuid
RFC4122 (v1 and v4) generator
RFC4122 (v1 和 v4) 生成器
Simple, fast generation of RFC4122 UUIDS.
简单,快速地生成 RFC4122 UUIDS。
Features:
- Generate RFC4122 version 1 or version 4 UUIDs
- Runs in node.js and browsers
- Cryptographically strong random number generation on supporting platforms
- Small footprint (Want something smaller? Check this out!)
特性:
npm install uuid
// Generate a v1 UUID (time-based)
const uuidV1 = require('uuid/v1');
uuidV1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 UUID (random)
const uuidV4 = require('uuid/v4');
uuidV4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
Browser-ready versions of this module are available via wzrd.in.
这个模块为浏览器准备的版本可以通过 wzrd 获取。
<script src="http://wzrd.in/standalone/uuid@latest">script>
<script>
uuid.v1(); // -> v1 UUID
uuid.v4(); // -> v4 UUID
script>
(Note: Do not do this in production. Just don’t. wzrd.in is a great service, but if you’re deploying a “real” service you should be using a packaging tool like browserify or webpack. If you do go this route you would be well advised to link to a specific version instead of
uuid@latest
to avoid having your code break when we roll out breaking changes.)
注意:不要在产品中这样做。就是不要这么做。wzrd.in 是一个很大的服务器,但是如果你开发的是一个真实的服务,你应该使用一个打包工具,就像 browserify 或者 webpack。如果你确实打算走这条路,明智的做法是链接到一个特定的版本,而不是uuid@latest
,这样可以避免当我们做了一些不兼容的修改时,你的代码就崩溃了。
Generate a V4 uuid. See uuid.v4 documentation below.
生成一个 V4 的 uuid。查看下面 uuid.v4 的文档。
Generate and return a RFC4122 v1 (timestamp-based) UUID.
生成并且返回一个 RFC4122 第一版的(基于时间戳的)UUID。
options - (Object) Optional uuid state to apply. Properties may include:
- node - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
- clockseq - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
- msecs - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.
- nsecs - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if
msecs
is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.buffer - (Array | Buffer) Array or buffer where UUID bytes are to be written.
offset - (Number) Starting index in buffer at which to begin writing.
msecs
,它会被忽略。默认情况下,会使用内部的 uuid 计数器,按照 4.2.1.2.。buffer
的起始位置。Returns
buffer
, if specified, otherwise the string form of the UUID
如果指定了 buffer
,就返回它,否则返回字符串构成的 UUID。
Notes:
- The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
注意:
Example: Generate string UUID with fully-specified options
范例:通过指定所有选项来生成字符串形式的 UUID
uuid.v1({
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
clockseq: 0x1234,
msecs: new Date('2011-11-01').getTime(),
nsecs: 5678
}); // -> "710b962e-041c-11e1-9234-0123456789ab"
Example: In-place generation of two binary IDs
范例:就地生成两组二进制 IDs
// Generate two ids in an array
const arr = new Array(32); // -> []
uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
Generate and return a RFC4122 v4 UUID.
生成并返回一个 RFC4122 第四版本的 UUID。
- options - (Object) Optional uuid state to apply. Properties may include:
- random - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
- rng - (Function) Random # generator to use. Set to one of the built-in generators - uuid.mathRNG (all platforms), uuid.nodeRNG (node.js only), uuid.whatwgRNG (WebKit only) - or a custom function that returns an array[16] of byte values.
- buffer - (Array | Buffer) Array or buffer where UUID bytes are to be written.
- offset - (Number) Starting index in buffer at which to begin writing.
buffer
的起始位置。Returns
buffer
, if specified, otherwise the string form of the UUID
如果指定了 buffer
,就返回它,否则返回字符串构成的 UUID。
Example: Generate string UUID with fully-specified options
范例:通过指定所有选项来生成字符串形式的 UUID
uuid.v4({
random: [
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
]
});
// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
Example: Generate two IDs in a single buffer
范例:在一个字符缓冲区中生成两个 IDs
const buffer = new Array(32); // (or 'new Buffer' in node.js)
uuid.v4(null, buffer, 0);
uuid.v4(null, buffer, 16);
npm test
The code for the legacy node-uuid package is available in the node-uuid branch.
node-uuid 包遗留的代码在 node-uuid 的分支上可见。