如何在node.js中为注册Web服务的用户生成唯一ID?

Myt*_*iel 0 random uniqueidentifier mongodb node.js

我正在使用node.js构建一个web服务,我在我的服务中注册用户.我正在使用node.js + mongodb作为我的数据库,一旦我创建了一个新用户,我也想为它们创建一个唯一的ID并将其作为响应发送回去,就像所有像fb这样的优秀服务发送回到facebook ID.我不想从mongodb发回_id,所以我如何为节点中的每个用户生成一个唯一的id,这样做也更好,或者只是发送回mongo _id.

Pet*_*ons 6

是这样做更好还是只发回mongo _id

如果你不得不问,最好只发回mongo _id.除非你为什么这么简单,直截了当,让生活变得容易,每个人的技术都有问题,否则你只需要发送回mongo _id.

如果您认为mongo _id对您来说不够好(可能是因为FUD而不是任何现实的推理),那么您将面临以下额外挑战而没有任何好处:

  • 你必须更仔细地考虑你的索引
  • 帮手库函数就像findById不再适合你了
  • 现在你有两个巨大的,难以置信的ID来处理每条记录
  • 像mongoose这样的辅助库也很难充分利用
  • 您必须在应用程序的整个生命周期内在调试期间来回映射_idmySuperAwesomeExtraneousId不断地进行映射

也就是说,您可以随时使用额外的mongo,ObjectId因为它们是完全有效的唯一ID:

const mongo = require('mongodb')
let mySuperAwesomeExtraneousId = new mongo.ObjectID()
Run Code Online (Sandbox Code Playgroud)