如何将 PostgreSQL 与 Nodejs 和 Sequelize 连接

如何将 postgresql 与 nodejs 和 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 = '';const host = 'localhost';const database = '';const password = '';const port = '';

登录后复制

导入续集

从 sequelize 导入必要的对象:

const { sequelize, model, datatypes } = require('sequelize');

登录后复制

初始化 sequelize

使用您的数据库配置创建一个新的 sequelize 实例:

const sequelize = new sequelize(database, user, password, {  host,  port,  dialect: 'postgres',  logging: false});

登录后复制

在这里,我们指定 dialect: ‘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 与 Nodejs 和 Sequelize 连接的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2672174.html

(0)
上一篇 2025年3月7日 13:21:34
下一篇 2025年3月5日 23:16:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论