前言
在开发前端应用时,我们通常需要使用到数据库来存储数据。而在本地搭建数据库环境时,往往比较麻烦。这时,我们可以使用 Docker 来方便地搭建本地数据库环境,同时也可以使用 npm 包 docker-await-postgres 来让我们更方便地使用 PostgreSQL 数据库。本文将带领大家一步步使用 docker-await-postgres,享受开发的便利。
什么是 docker-await-postgres
docker-await-postgres 是一个基于 Docker 的、用于在 Node.js 中方便使用 PostgreSQL 数据库的 npm 包。它能够快速配置、启动和关闭 Docker 容器,并为您创建一个简单的 API,使您可以通过 Node.js 连接到您的本地 PostgreSQL 数据库。
开始使用 docker-await-postgres
在本地安装 Docker。
创建一个新的 Node.js 项目,并在项目根目录下打开终端。
安装 docker-await-postgres:
npm i --save docker-await-postgres
在根目录下创建一个名为 app.js 的文件,打开并输入以下内容:
-- -------------------- ---- ------- ----- - -------------- - - --------------------------------- ----- --------- - --- ------------------------------------ ----------------------- -- - ----------------------- -- ----- -- ------- -- -- -- --- ---------- ----- - ---- - - -------------- ----- ---- - --- ------ ----- ----------- --------- ----------- ----- ------------ --------- ----------- ----- ----------------------------- --- -- ---- ------------------ ------- --------- -- ------------------------- --------- -- ------------- ----------------- ---------- -- -------------------- -- -------------- -- - ----------------------- ------- ---
上述代码会创建一个名为 my-container-name 的 Docker 容器,该容器将包含一个运行 PostgreSQL 的实例。接下来,通过 pg 库连接到这个实例,并测试连接是否成功。
使用 Node.js 运行 app.js 文件:
node app.js
然后你将看到如下输出:
PostgreSQL is ready to use! Successfully connected to PostgreSQL: 2022-01-01 00:00:00
这表明 PostgreSQL 已经准备就绪,并且你已经成功地连接到它了。
当你完成工作并想要关闭容器时,只需要运行以下命令即可:
container.stop();
这将停止并删除名为 my-container-name 的 Docker 容器。
指南
接下来,我们来详细解释上面的代码是如何工作的。首先,我们引入了 docker-await-postgres 包,并创建了一个 DockerPostgres 实例。
const { DockerPostgres } = require('docker-await-postgres'); const container = new DockerPostgres('my-container-name');
在创建 DockerPostgres 实例时,我们可以传入几个参数:
- containerName - Docker 容器的名称,默认为 "docker-postgres".
- dockerTag - Docker 镜像的标签名称,默认为 "postgres".
- postgresPassword - PostgreSQL 数据库管理员密码,默认为 "postgres".
- verbose - 是否打印详细输出,默认为 false.
现在我们已经创建了 DockerPostgres 实例,它会自动启动 Docker 容器。我们可以使用 run() 方法来启动容器并等待它准备好运行。一旦容器准备就绪,我们就可以继续连接到 PostgreSQL 实例。
container.run().then(() => { console.log(`PostgreSQL is ready to use!`);
在容器准备就绪后,我们使用了 pg 库来连接到 PostgreSQL 数据库实例。
-- -------------------- ---- ------- ----- - ---- - - -------------- ----- ---- - --- ------ ----- ----------- --------- ----------- ----- ------------ --------- ----------- ----- ----------------------------- ---
在这段代码中,我们使用 Pool 类来创建一个连接池。在此处,我们使用了 PostgreSQL 的默认用户名和密码,因为 Docker 容器已经预装了 PostgreSQL。我们还提供了连接到 host: localhost,端口 5432 的 PostgreSQL 数据库的必需项。
我们还使用了 getMappedPort() 方法来获取容器映射到本地机器端口的映射。在这里,Docker 将容器的端口 5432 映射到本地机器的一个随机端口。这就是我们在连接字符串中使用的端口号。
最后,我们使用 pool.query() 来查询数据库。
pool.query('SELECT NOW()') .then(res => console.log('Successfully connected to PostgreSQL:', res.rows[0].now)) .catch(err => console.error(err));
这将查询数据库以获取当前时间,并将结果输出到控制台。如果连接成功,你将看到成功连接的消息。
结论
使用 npm 包 docker-await-postgres,我们可以轻松地使用 Node.js 和 PostgreSQL 数据库。它提供了一个简单而方便的方法来处理数据库,同时还可以使用 Docker 轻松地搭建和管理数据库环境。使用此教程,您不仅学到了如何使用 docker-await-postgres,还了解了如何使用 Docker 运行容器、如何使用 Node.js 连接和查询 PostgreSQL 数据库。祝您在开发过程中愉快!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a730d0927023822591