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