介绍
bookshelf-uuid 是一款基于 Node.js 的 npm 包,它是 bookshelf.js 的一个插件。它可以让你在使用 bookshelf.js 框架时生成 UUID 主键,避免使用自增 ID 带来的一些问题。
安装
你可以使用 npm 安装 bookshelf-uuid:
npm install bookshelf-uuid --save
使用
在使用 bookshelf-uuid 之前,需要先安装 bookshelf.js。这里以 MySQL 为例,假设已经创建好了一个 users 表。
-- -------------------- ---- ------- ----- ---- - ----------------- ------- -------- ----------- - ----- ------------ ----- ------- --------- ----------- --------- ------- -- --- ----- --------- - --------------------------- ----- ---- - -------------------------- ----------------------- ----- ---- - ------------------------ ---------- -------- --- ------------ ----- ------ ------------------- -- - ---------------------------- ---
可以看到,我们在初始化 bookshelf 后先使用了 bookshelf-uuid 插件,在定义 model 时,不需要再指定主键,而是直接使用了默认的 ID 字段。在保存数据时,我们只需指定除 ID 之外的其他字段,保存后可以观察到控制台上打印出的 ID 是一个 UUID:
ecdc6df8-0da9-4b0f-a1e4-1fa27780e2f6
如果想要自定义主键字段名成为 uuid:
-- -------------------- ---- ------- ---- - ------------------------ ---------- -------- ------------ ------ --- ------------ ----- ------ ------------------- -- - ------------------------------ ---
这样保存后,控制台上打印出的主键名将会是 uuid 而不是 id。
指导意义
使用 bookshelf-uuid,首先可以避免使用单调自增的 ID 带来的很多问题,如:不利于分布式部署,明显的顺序性会暴露业务流程,存在很大可能性的 ID 碰撞等。
其次,使用 UUID,虽然相较于单调自增,数据表在 storage 和索引层面上的性能稍有下降,但是总的来说,ID 已经不是当前大多数系统的性能瓶颈,而如此做事可以将系统文化从 datalake,evolving to data stream,是的适应 fog computing 的分布式部署的趋势。
最后,书写 Node.js 相关的架构和项目时,经常需要引用 uuid
或使用这类的第三方库,当每个项目都去依赖 uuid
时,对于包管理和开发人员的负担都会增加。使用 bookshelf-uuid 插件可以将生成 UUID 的逻辑统一管理,方便维护。
总结
bookshelf-uuid 插件是一款基于 Node.js 的 npm 包,它可以让你在使用 bookshelf.js 框架时生成 UUID 主键,避免使用自增 ID 带来的问题。本文介绍了 bookshelf-uuid 的安装和使用方法,以及其背后的一些意义。希望能对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/195988