在现代 Web 开发中,前端和后端已经越来越模糊。前端开发人员必须掌握后端开发技能以便于进行全栈开发。本文将介绍如何在 Hapi.js 中使用 Sequelize 操作 MySQL 数据库。
Hapi.js
Hapi.js 是一个 Node.js 框架,提供了创建 Web 应用程序所需的一系列工具和组件。 它具有插件架构,使它易于扩展和定制。可以使用 Hapi.js 构建任何类型的 Web 应用程序,从 API 到全栈应用程序。
Sequelize
Sequelize 是一个 Node.js ORM(对象关系映射器),允许 Node.js 应用程序轻松地管理 MySQL,PostgreSQL,SQLite 和 Microsoft SQL Server 数据库。 它提供了一个易于使用的 API,使开发人员可以使用 JavaScript 操作数据库而不需要编写 SQL 查询。
在 Hapi.js 中使用 Sequelize
在开始之前,确保已经安装了 Node.js、MySQL 以及 Sequelize 和 Hapi.js 。现在,我们使用 npm 实用程序安装这些软件包。
npm i sequelize mysql2 hapi
连接数据库
在使用 Sequelize 之前,需要创建一个数据库,并建立数据库连接。
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' });
上面的代码建立了一个通过用户名和密码访问本地 MySQL 数据库的连接。确保将这些值设置为自己的数据库凭据。
定义模型
在 Sequelize 中,一般称为模型(model)是 ORM 下数据库表的脚本对象。在 Hapi.js 应用程序中,您可以通过创建一个独立的文件来定义一个模型。对于我们的示例,我们将使用一个简单的 'users' 模型。
-- -------------------- ---- ------- ----- --------- - --------------------- -------------- - ----------- ---------- -- - ------ ------------------------- - --- - ----- ------------------ ---------- ------ ----------- ----- -------------- ---- -- ---------- - ----- ----------------- ---------- ----- -- --------- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ------ --------- - -------- ---- - - --- -
上面的代码定义了一个名为 'users' 的模型,包括 'id','firstName','lastName' 和 'email' 字段。其中 'id' 自动递增,'firstName' 和 'lastName' 是必填字段,并且 'email' 必须为有效的电子邮件地址。
定义路由
现在,我们已经定义了模型和数据库连接,让我们在 Hapi.js 应用程序中定义路由来处理与数据库的请求。以下是路由器定义示例。
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - ------------------------- ----- --------- - --- --------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - -------------------- ----------- ----- ---- - ----- -- -- - ----- ---------------- ------ ---- --- --------------------- - ------ ----------- - ------- -------------- ------- ------ ----- --------- -------- ----- --------- -- -- - ----- ----- - ----- --------------- ------ ------ - --- -------------- ------- ------- ----- --------- -------- ----- --------- -- -- - ----- - ---------- --------- ----- - - ---------------- ----- ------- - ----- ------------- ---------- --------- ----- --- ------ -------- - --- -------------- ------- ------ ----- -------------- -------- ----- --------- -- -- - ----- ---- - ----- --------------------------------- ------ ----- - --- -------------- ------- ------ ----- -------------- -------- ----- --------- -- -- - ----- - ---------- --------- ----- - - ---------------- ----- ---- - ----- --------------------------------- ----- ------------- ---------- --------- ----- --- ------ ----- - --- -------------- ------- --------- ----- -------------- -------- ----- --------- -- -- - ----- ---- - ----- --------------------------------- ----- --------------- ------ ----------------------- - ---
首先,我们从我们的模型生成一个 'User' 对象。 接下来,我们调用全局 'sync()' 函数来同步模型和数据库模式。这将生成 'users' 表。
路线处理程序函数与每个操作相关联。 '/users' 路由处理程序将检索所有用户。'/users/{id}' 将检索指定的用户。'/users' POST 路由将创建新用户。'/users/{id}' PUT 路由将更新用户。'/users/{id}' DELETE 路由将删除用户。
运行应用程序
现在,我们已经定义了模型、数据库连接和路由,让我们执行我们的 Hapi.js 应用程序。使用以下命令启动应用程序。
node app.js
现在,应用程序将开始运行。如果一切正常,我们应该看到控制台输出 'Database & tables created!'。以下是通过 Postman 进行测试的 API 。
GET 请求 - http://localhost:3000/users
POST 请求 - http://localhost:3000/users
PUT 请求 - http://localhost:3000/users/1
DELETE 请求 - http://localhost:3000/users/1
结论
Hapi.js 和 Sequelize 是非常强大的工具,可帮助开发人员构建灵活的、可扩展的 Web 应用程序。Sequelize 简单易用,允许开发人员使用类似于 JavaScript 对象的代码来操作数据库。Hapi.js 作为 Node.js 的强大框架,提供了插件架构和额外的组件功能,可以快速创建应用程序。结合使用 Hapi.js 和 Sequelize,可以打造一个功能强大、可靠和易于维护的 Web 应用程序。
示例代码:https://github.com/hapijs/examples/tree/master/sequelize
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670a5600d91dce0dc8808ac8