概览
Hapi.js 是一个流行的 Node.js 框架,用于构建可扩展的 Web 应用程序。Sequelize 是一个 Node.js ORM(对象关系映射),它支持 Postgres、MySQL、MariaDB、SQLite 和 Microsoft SQL Server 等多种关系型数据库。在本文中,我们将介绍如何使用 Sequelize 连接不同的数据库,以及如何在 Hapi.js 中使用它。
安装
在开始使用 Sequelize 之前,您需要在项目中安装它。您可以使用 npm 命令进行安装:
npm install sequelize
如果您正在使用 MySQL 数据库,还需要安装 mysql2 驱动程序:
npm install mysql2
同样的,如果您正在使用 Postgres,还需要安装 pg 驱动程序:
npm install pg
安装完成后,让我们开始配置 Sequelize。
配置
在使用 Sequelize 之前,首先需要设置连接字符串和数据库配置。您可以在 config.js
或类似的配置文件中指定以下内容:
-- -------------------- ---- ------- -------------- - - ------------ - --------- ------- --------- ----- --------- ----------------------- ----- ------------ -------- -------- ----------------- ----- -- ----- - --------- ------- --------- ----- --------- ---------------- ----- ------------ -------- -------- ----------------- ----- -- ----------- - --------- ------------------------ --------- ------------------------ --------- -------------------- ----- -------------------- -------- -------- ----------------- ----- - --
在上面的配置文件中,我们指定了开发、测试和生产环境下的数据库信息。通过 module.exports
,我们将配置导出并可以引用它。
在使用 Sequelize 之前,我们还需要导入它:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- ------ - -------------------- ----- --------- - --- ---------- ---------------------------- ---------------------------- ---------------------------- - ----- ------------------------ -------- --------------------------- ----------------- ----------------------------------- - --
在上面的代码中,我们使用 new Sequelize()
创建了一个 Sequelize 实例,并在其中传递了连接字符串和选项。现在,我们可以使用该实例创建模型。
模型
在 Sequelize 中,模型用于与数据库表进行交互。我们可以使用它们创建、查询、更新和删除数据。下面是一个示例用户模型:
-- -------------------- ---- ------- ----- ---- - ------------------------ - --- - ----- ------------------ -------------- ----- ----------- ---- -- ---------- - ----- ---------------- -- --------- - ----- ---------------- -- ------ - ----- ---------------- -- --------- - ----- ---------------- - -- - ----------- ----- --------- ---- --- -------------- - -----
在上述代码中,我们使用 sequelize.define()
方法创建了一个名为 User
的模型。该模型与数据库中的 users
表进行映射,并定义了 id、firstName、lastName、email 和 password 字段。
我们还传递了一些选项,例如 timestamps
(是否自动生成 createdAt 和 updatedAt 字段)和 paranoid
(是否使用软删除)。
现在,我们已经定义了一个模型。让我们来看看如何在 Hapi.js 中使用它。
在 Hapi.js 中使用 Sequelize
首先,让我们定义一个路由,以便我们可以将数据插入到数据库中:
-- -------------------- ---- ------- -------------- ------- ------- ----- --------- -------- ----- --------- -- -- - ----- ---- - ----- ------------- ---------- -------------------------- --------- ------------------------- ------ ---------------------- --------- ------------------------ --- ------ ----------------- - ---
在上述代码中,我们使用 User.create()
方法创建一个新的用户,并将其保存到数据库中。我们使用 request.payload
获取来自 POST 请求的数据,并且 h.response()
方法将用户数据作为响应进行发送。
接下来,让我们定义一个路由,以便我们可以获取数据库中的所有用户:
server.route({ method: 'GET', path: '/users', handler: async (_, h) => { const users = await User.findAll(); return h.response(users); } });
在上述代码中,我们使用 User.findAll()
方法获取数据库中的所有用户,并将它们作为响应返回。
结论
在本文中,我们介绍了如何使用 Sequelize 连接多种关系型数据库,并在 Hapi.js 中使用它。我们讨论了如何定义模型、如何将数据插入到数据库中以及如何从数据库中获取数据。希望这篇文章能够帮助您更好地理解 Hapi.js 和 Sequelize。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670c7a7e66ef9cf37fb18fc9