Node.js npm uuid

来源:互联网 发布:制作发光字软件 编辑:程序博客网 时间:2024/06/06 02:29

译自 https://www.npmjs.com/package/uuid

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!)

特性:

  • 生成 RFC4122 版本1 或 版本4 的 UUIDs
  • 运行在 node.js 和 浏览器上
  • 在支持的平台上,生成保密性强的随机数
  • 很小的空间占用(想要某些东西更小?看看这个)

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' 

Quickstart - Pre-packaged for browsers (Not recommended)(快速入门 - 为浏览器进行预包装 不推荐)

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 UUIDuuid.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,这样可以避免当我们做了一些不兼容的修改时,你的代码就崩溃了。

API

uuid(…)

Generate a V4 uuid. See uuid.v4 documentation below.

生成一个 V4 的 uuid。查看下面 uuid.v4 的文档。

uuid.v1([options [, buffer [, offset]]])

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.

  • options - (对象)提交的 uuid 状态可选。属性包括:
    • node - (数组)Node id 是一个 6 字节的数组(按照 4.1.6)。默认:随机生成 Node id。查看便笺 1。
    • clockseq - (0 - 0x3fff 之间的数字) RFC 时钟序列。默认会使用内部维持的时钟序列。
    • msecs - (数字 或者 日期)从 Unix 纪元开始计算的以毫秒为单位的时间。默认使用当前时间。
    • nsecs - (0 - 9999 之间的数字)附加时间,单位是 100 纳秒(nanosecond:十亿分之一秒)。如果未指定 msecs,它会被忽略。默认情况下,会使用内部的 uuid 计数器,按照 4.2.1.2.。
  • buffer - (数组 或者 字符缓冲区)待写入 UUID 字节的数组或字符缓冲区。
  • offset - (数字) 开始写入到 buffer 的起始位置。

Returns buffer, if specified, otherwise the string form of the UUID

如果指定了 buffer,就返回它,否则返回字符串构成的 UUID。

Notes:

  1. 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.)

注意:

  1. 随机生成的 node id 在当前 JS 运行环境的生命周期中只能保证一直是常量。(未来的模块版本中可能使用持久化的存储机制来继承这种保证。)

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] 

uuid.v4([options [, buffer [, offset]]])

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.
  • options - (对象)提交的 uuid 状态可选。属性包括:
    • random - (16位的数字数组)使用16位的数字(0-255)组成的数组来代替随机生成的值。
    • rng - (函数)使用随机 # 生成器。设置为一个内置的生成器 uuid.mathRNG(所有平台),uuid.nodeRNG(只能在 node.js 上),uuid.whatwgRNG(只能在 WebKit 平台) - 或者一个可以返回一个 16 位的字节数组的自定义函数。
  • buffer - (数组 或者 字符缓冲区)待写入 UUID 字节的数组或字符缓冲区。
  • offset - (数字) 开始写入到 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);

Testing(测试)

npm test

Legacy node-uuid package(node-uuid 包的遗产)

The code for the legacy node-uuid package is available in the node-uuid branch.

node-uuid 包遗留的代码在 node-uuid 的分支上可见。

0 0