npm 包 bookshelf-uuid 使用教程

介绍

bookshelf-uuid 是一款基于 Node.js 的 npm 包,它是 bookshelf.js 的一个插件。它可以让你在使用 bookshelf.js 框架时生成 UUID 主键,避免使用自增 ID 带来的一些问题。

安装

你可以使用 npm 安装 bookshelf-uuid:

--- ------- -------------- ------

使用

在使用 bookshelf-uuid 之前,需要先安装 bookshelf.js。这里以 MySQL 为例,假设已经创建好了一个 users 表。

----- ---- - -----------------
  ------- --------
  ----------- -
    ----- ------------
    ----- -------
    --------- -----------
    --------- -------
  --
---

----- --------- - ---------------------------
----- ---- - --------------------------

-----------------------

----- ---- - ------------------------
  ---------- --------
---

------------
  ----- ------
------------------- -- -
  ----------------------------
---

可以看到,我们在初始化 bookshelf 后先使用了 bookshelf-uuid 插件,在定义 model 时,不需要再指定主键,而是直接使用了默认的 ID 字段。在保存数据时,我们只需指定除 ID 之外的其他字段,保存后可以观察到控制台上打印出的 ID 是一个 UUID:

------------------------------------

如果想要自定义主键字段名成为 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


猜你喜欢

  • npm 包 js-object-pretty-print 使用教程

    在前端开发中,经常需要处理 JSON 数据。但是,在处理完复杂的 JSON 数据后,可能会出现结构混乱难以阅读的情况。此时,js-object-pretty-print npm 包可以帮助我们美化输出...

    5 年前
  • npm 包 generate-package-json-webpack-plugin 使用教程

    generate-package-json-webpack-plugin 是一个基于 webpack 的插件,可以自动生成 package.json 文件中未列出的依赖项和版本号。

    5 年前
  • npm 包 socket.io-mock 使用教程

    前言 在前端开发中,用得到 socket.io。这个库可以让浏览器和服务器之间实现实时双向通信。然而,在写测试用例的时候,需要模拟一个 socket.io 服务器环境来测试自己所写的 socket.i...

    5 年前
  • npm 包 npm-audit-html 使用教程

    npm 是 Node.js 的包管理器,被广泛用于前端工程中。但是,在开发过程中,我们可能会遇到安全性问题或者性能问题,这个时候我们需要使用 npm 的工具来帮助我们检查和解决这些问题。

    5 年前
  • npm 包 @types/postal 使用教程

    前言 在前端开发中,我们经常会使用 JavaScript 库,这些库为我们提供了许多的便利。但是,在编写 TypeScript 时,我们需要指定这些库的 API,而手动编写这些 API 并不是一件简单...

    5 年前
  • npm 包 axios-debug-log 使用教程

    前言 在前端开发中,我们经常需要与后端进行数据交互。而 Ajax 技术的出现,使得前端可以跨越域名和协议向后端服务器发送请求。为了更方便地进行 Ajax 请求,JavaScript 社区出现了许多优秀...

    5 年前
  • npm 包 @admitad-x3/feathers-rbac 使用教程

    什么是 @admitad-x3/feathers-rbac @admitad-x3/feathers-rbac 是一个基于 FeathersJS 的服务和钩子,提供强大的 Role Based Acc...

    5 年前
  • npm 包 @metaclinic/dev-testing 使用教程

    简介 @metaclinic/dev-testing 是一款用于开发时进行测试的 Node.js 模块。它是专为开发人员设计的,可以方便地进行单元测试、集成测试等各种测试,确保代码质量。

    5 年前
  • npm 包 @libstack/router 使用教程

    简介 在前端开发中,路由是一个不可或缺的概念。通过路由可以实现页面之间的跳转,同时也可以实现 URL 路径和组件之间的绑定。因此,选择一种好用的路由库是十分重要的。

    5 年前
  • npm 包 @gamiphy/logger 使用教程

    在前端开发中,进行日志输出是非常重要的事情,因为日志不仅可以帮助我们在开发调试中迅速找到问题,也可以帮助我们了解用户操作情况,了解用户的习惯和需求,从而更好地改进产品和服务。

    5 年前
  • npm 包 express-async-errors 使用教程

    简介 在 Node.js 的开发中,Express 是比较常见的 Web 框架,并且已经成为了一种流行的选择,因为它易用,灵活,适应性强。不过,在使用 Express 进行开发时,有时可能会遇到异步错...

    5 年前
  • npm 包 @types/gulp-typescript 使用教程

    如果你是一个前端开发者,你肯定经常使用 Gulp 来构建和自动化你的工作流程。但是,当你想要在 TypeScript 中使用 Gulp 时,你可能会遇到一些困难。这时,@types/gulp-type...

    5 年前
  • npm 包 @types/gulp-nodemon 使用教程

    在前端开发中,我们会经常用到 Gulp 这个流式构建工具。而对于 Node.js 应用程序的开发,我们则常常使用 nodemon 这个工具来自动监视我们的 Node.js 代码的变化并自动重启应用程序...

    5 年前
  • npm 包 process-env 使用教程

    在前端开发中,我们经常需要根据运行环境的不同来决定一些配置问题。process-env 是一个基于 Node.js 的 npm 包,可以让我们在前端代码中方便地获取环境变量的值,并在不同的运行环境中进...

    5 年前
  • npm 包 ipware 使用教程

    0. 前言 前端开发离不开后端开发。在开发过程中需要从前端向后端传送一些信息。而在后端,我们需要获取一些客户端的信息,如客户端的 ip 以及其它一些信息。本文将介绍如何使用 ipware 这个 npm...

    5 年前
  • npm 包 fluent-logger 使用教程

    介绍 fluent-logger 是一个 Node.js 的 npm 包,它提供了与 Fluentd 的通信接口,使得用户能够使用 Node.js 应用程序发送日志数据到 Fluentd 中。

    5 年前
  • npm 包 @types/node-uuid 使用教程

    在前端开发中,经常需要生成唯一标识符来标记数据、操作等,而 node-uuid 是一个常用的实现方式。但是,如果你使用 TypeScript 来开发,则需要对 node-uuid 的类型进行声明。

    5 年前
  • npm 包 @types/i18n 使用教程

    在前端开发中,i18n(国际化)是一个必不可少的功能。而在 TypeScript 中,则需要使用 @types/i18n 这一 npm 包来实现 i18n 功能。本教程将详细介绍 @types/i18...

    5 年前
  • npm 包 @types/Helmet 使用教程

    在前端开发中,我们常常会使用一些第三方库和框架来实现某些功能。而在 TypeScript 项目中使用这些库时,常常会遇到类型不对应的问题。这时候,我们就需要为这些库安装对应的 TypeScript 类...

    5 年前
  • npm 包 @types/bcrypt 使用教程

    在前端开发中,安全性和数据加密非常重要。而 bcrypt 是一个用于密码加密和散列的库,它使用 Blowfish 加密算法来保护用户账户密码。在 TypeScript 项目中,你可以通过 npm 包 ...

    5 年前

相关推荐

    暂无文章