0

我正在从事一个在 Node.js 中构建 URL 缩短器的自学项目。我本来打算使用 shortid ,但它已被弃用,所以我改用nanoid。我担心的是最终可能与数据库中生成的 ID 和现有 ID 发生冲突(通过 Knex)。问题不完全是“加密级”,更多的是由于数据库中已经存在新的短 URL ID 而导致应用程序崩溃的功能问题。我想出了以下假设的解决方案(不是我的实际代码!)。这样做看起来是正确的(最好的、高效的、漂亮的等)方式吗?

var shortId = nanoid();
while (knex.('urls').where('shortID',shortId).first() != NULL) {
 shortId = nanoid();
}
4

1 回答 1

0

您可以根据时间戳创建 ID,这就是 MongoDB 使用其 id 索引机制的方式。

new Date().valueOf() //1606597014945

您可以使用它并添加字母,您可以将其缩小到另一个字母机制。希望它对你有帮助:)

于 2020-11-28T20:58:30.367 回答