Node.js NPM shortid 模块

28 Apr 2025 | 4 分钟阅读

Node.js 的 shortid 模块是一个小巧、快速且易于使用的库,用于生成唯一、简洁且对 URL 友好的 ID。它非常适合为 API 密钥、URL 和数据库记录创建人类可读的标识符。生成的 ID 短小、全局唯一,并且不包含任何危险的 URL 字符,因此在 Web 应用程序中使用是安全的。Shortid 是通过 npm 安装的,在浏览器和 Node.js 环境中都能完美运行。尽管该模块曾是一个流行的选择,但它已不再受支持;其开发者反而推荐 nanoid 等替代方案,以获得更好的安全性和速度。对于遗留项目,即使 shortid 已不再使用,它仍然是一个直接的工具。

主要特点

NPM shorted 模块的几个关键特性如下:

  • 短小且唯一的 ID: 它生成的 ID 比标准的 UUID 更短且唯一。
  • 对 URL 友好: ID 不包含可能破坏 URL 的字符,例如(/、? 或 =)。
  • 快速的性能: 由于其轻量级和高效,它非常适合高性能应用程序。
  • 支持多种平台: 它兼容 Node.js 和浏览器。
  • 适应性: 如果需要,它允许配置生成 ID 的逻辑。

语法

在本地文件中导入包的语法

创建唯一 ID 的语法

  • generate: 此方法用于创建唯一 ID。
  • isvalid(id): 此方法用于检查 ID 是否有效。

shortid 的工作原理

该模块结合了计数器、随机种子和当前时间戳等多种输入,以确保即使在分布式应用程序中,ID 也是唯一的。

使用 npm 安装 shortid 模块的安装命令

示例

安装 shortid 后,shortid 的用法

示例 1

让我们通过一个示例来说明 npm shorted 的用法

输出

 
Generated ID: ppAXYpK   

Shortid 曾是创建简洁 ID 的可靠选择,但它已不再使用且已被弃用。作者建议在新应用程序中使用其他包,如 nanoid,后者提供了更多功能、更高的安全性和改进的性能。

示例 2

让我们再举一个示例来说明 npm shorted 的用法

输出

 
User 1: { id: 'CK5kscG', name: 'Alice', email: 'alice@example.com' }
User 2: { id: '9Qjwp9z', name: 'Bob', email: 'bob@example.com' }

说明

  • 使用 shortid 为每个用户生成一个不同的短 ID。
  • 这些简短、对 URL 安全的 ID 可以轻松用作不同的资源标识符,例如用户个人资料。

示例 3

让我们再举一个示例来说明 npm shorted 的用法

输出

 
Unique File Name 1: Wf2Kd32.png
Unique File Name 2: Jz9XvPp.pdf   

说明

  • saveFile 方法通过获取现有文件名、提取其扩展名并添加 shortid 创建的唯一 ID 来创建一个新文件名。
  • 此技术通过确保文件名唯一来防止存储系统被覆盖。

shortid 的替代方案

  • NanoID: NanoID 是一个先进、高效且安全的 ID 生成库。
  • UUID: 虽然它们更长且用户友好性较差,但也用于创建通用唯一标识符。

结论

Node.js 环境中,shortid 模块是一个简单但有效的工具,用于创建简短、独特且对 URL 友好的标识符。由于其轻量级的架构、易于使用的特性以及与浏览器和 Node.js 的兼容性,它是诸如生成唯一用户 ID、文件名或 数据库 密钥等任务的良好选择。尽管它已过时,但对于旧系统或快速部署来说,它仍然是一个可靠的选择。然而,在现代应用程序中,nanoid 等替代方案提供了更好的性能和安全性。即使 shortid 可能已不再使用,它仍然是专注的实用库如何改进开发工作流程的一个绝佳示例。


下一主题Nodejs-jimp-flip