0

0

如何将 PostgreSQL 与 Nodejs 和 Sequelize 连接

王林

王林

发布时间:2024-08-05 18:50:38

|

371人浏览过

|

来源于dev.to

转载

如何将 postgresql 与 nodejs 和 sequelize 连接

在使用数据库时,开发人员经常面临选择是使用原始数据库查询还是利用抽象出一些复杂性的库。 sequelize 就是这样一个库——一种流行的 node.js orm(对象关系映射器),可与 postgresql、mysql 和其他关系数据库配合使用。在本教程中,我们将深入探讨如何在 node.js 上使用 sequelize 连接 postgresql 数据库,包括安装、配置、模型创建和执行 crud 操作。

安装和配置 sequelize

sequelize 通过在 sql 查询上提供抽象层来简化数据库交互。它在底层利用 pg 库连接到 postgresql。要开始使用 sequelize,请按照以下步骤操作:

  1. 初始化您的项目

    如果您要开始一个新项目,请初始化 node.js 项目以创建 package.json 文件:

    npm init -y
    
  2. 安装 sequelize 和 postgresql 驱动程序

    安装 sequelize 以及 postgresql 驱动程序 pg:

    npm install pg sequelize
    
  3. 设置数据库配置

    在 node.js 应用程序中,您首先需要定义 postgresql 数据库访问变量:

    const user = '';
    const host = 'localhost';
    const database = '';
    const password = '';
    const port = '';
    
  4. 导入续集

    从 sequelize 导入必要的对象:

    const { sequelize, model, datatypes } = require('sequelize');
    
  5. 初始化 sequelize

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

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

    在这里,我们指定 dialect: 'postgres' 来表示我们正在使用 postgresql。我们还禁用 sql 查询日志记录以保持控制台输出干净,尽管您可以在调试期间启用它。

创建 sequelize 模型

sequelize 中的模型代表数据库中的表。每个模型都定义了相应表的结构并提供了与之交互的方法。

  1. 定义模型

    假设您有一个名为 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 检索数据:

OpenArt
OpenArt

在线AI绘画艺术图片生成器工具

下载
  1. 检索所有记录

    要从 cats 表中获取所有记录:

    const results = await cat.findall();
    console.log(results);
    

    findall() 返回一个承诺,解析为表示表中行的实例数组。

  2. 限制检索的列

    如果您只需要某些列,请使用属性选项:

    const results = await cat.findall({
      attributes: ['age']
    });
    console.log(results);
    
  3. 添加 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);
    
  4. 应用排序和限制

    对结果进行排序并限制返回的行数:

    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,您可以简化数据库交互并更加专注于构建强大的应用程序。快乐编码!

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

680

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

347

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1095

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

357

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

676

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

574

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

416

2024.04.29

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 797人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号