如何将 PostgreSQL 与 Node.js 和 Sequelize 连接
在使用数据库时,开发人员经常面临选择是使用原始数据库查询还是利用抽象出一些复杂性的库。 Sequelize 就是这样一个库——一种流行的 Node.js ORM(对象关系映射器),可与 PostgreSQL、MySQL 和其他关系数据库配合使用。在本教程中,我们将深入探讨如何在 Node.js 上使用 Sequelize 连接 PostgreSQL 数据库,包括安装、配置、模型创建和执行 CRUD 操作。
安装并配置 Sequelize
Sequelize 通过在 SQL 查询上提供抽象层来简化数据库交互。它在底层利用 pg 库连接到 PostgreSQL。要开始使用 Sequelize,请按照以下步骤操作:
-
初始化您的项目
如果您要开始一个新项目,请初始化 Node.js 项目以创建 package.json 文件:
npm init -y
登录后复制 -
安装 Sequelize 和 PostgreSQL 驱动程序
安装 Sequelize 以及 PostgreSQL 驱动程序 pg:
npm install pg sequelize
登录后复制 -
设置数据库配置
在 Node.js 应用程序中,您首先需要定义 PostgreSQL 数据库访问变量:
const user = '<postgres_user>'; const host = 'localhost'; const database = '<postgres_db_name>'; const password = '<postgres_password>'; const port = '<postgres_port>';
登录后复制 -
导入续集
从 Sequelize 导入必要的对象:
const { Sequelize, Model, DataTypes } = require('sequelize');
登录后复制 -
初始化 Sequelize
使用您的数据库配置创建一个新的 Sequelize 实例:
const sequelize = new Sequelize(database, user, password, { host, port, dialect: 'postgres', logging: false });
登录后复制在这里,我们指定方言:'postgres' 表示我们正在使用 PostgreSQL。我们还禁用 SQL 查询日志记录以保持控制台输出干净,尽管您可以在调试期间启用它。
创建 Sequelize 模型
Sequelize 中的模型代表数据库中的表。每个模型都定义了相应表的结构并提供了与之交互的方法。
-
定义模型
假设您有一个名为 cats 的表,其中包含名称和年龄列。您可以为该表定义 Sequelize 模型,如下所示:
class Cat extends Model {} Cat.init({ name: { type: DataTypes.STRING, allowNull: false }, age: { type: DataTypes.INTEGER, allowNull: false } }, { sequelize, modelName: 'cat', timestamps: false });
登录后复制在此示例中:
- `Cat` extends Sequelize’s `Model` class. - `init()` sets up the model with column definitions and configuration. - We use `DataTypes.STRING` and `DataTypes.INTEGER` to define column types. - `timestamps: false` disables automatic timestamp fields (`createdAt` and `updatedAt`).
查询数据
Sequelize 提供了一系列查询数据库的方法。以下是如何使用 Sequelize 检索数据:
-
检索所有记录
从 cats 表中获取所有记录:
const results = await Cat.findAll(); console.log(results);
登录后复制findAll() 返回一个承诺,解析为表示表中行的实例数组。
-
限制检索的列
如果您只需要某些列,请使用属性选项:
const results = await Cat.findAll({ attributes: ['age'] }); console.log(results);
登录后复制 -
添加 WHERE 子句
要过滤结果,请使用 where 选项。例如,要查找所有 8 岁的猫:
const results = await Cat.findAll({ where: { age: 8 } }); console.log(results);
登录后复制查找所有 5 岁或以上的猫:
const { Op } = require('sequelize'); const results = await Cat.findAll({ where: { age: { [Op.gte]: 5 } } }); console.log(results);
登录后复制 -
应用排序和限制
对结果进行排序并限制返回的行数:
const results = await Cat.findAll({ limit: 10, order: [ ['name', 'DESC'] ] }); console.log(results);
登录后复制
插入数据
要将新记录插入数据库,请使用 create() 方法:
const name = 'Garfield'; const age = 8; const result = await Cat.create({ name, age }); console.log('New Cat:', result);
更新数据
要更新现有记录,请使用 update() 方法:
await Cat.update( { age: 9 }, { where: { name: 'Garfield' } } );
如果要更新所有行(小心此操作),请省略 where 子句:
await Cat.update( { age: 10 } );
结论
在本教程中,我们探索了如何使用 Sequelize 与 PostgreSQL 数据库交互。我们首先安装和配置 Sequelize,然后创建模型来表示数据库表。
我们学习了如何使用 Sequelize 的方法查询、插入和更新数据。这个强大的 ORM 通过提供对 SQL 查询的更高级别的抽象来简化关系数据库的使用。
要进一步探索 Sequelize 及其功能,请考虑以下资源:
- 续集文档
- PostgreSQL 文档
- Node.js 文档
通过利用 Sequelize,您可以简化数据库交互并更加专注于构建强大的应用程序。快乐编码!
以上是如何将 PostgreSQL 与 Node.js 和 Sequelize 连接的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。
