当前位置: 首页 > article >正文

docker 安装postgres,nodejs连接pg

docker 安装postgres,nodejs连接pg

docker pull Postgres
docker image ls
docker pull dpage/pgadmin4
docker volume create postgres-volume
docker run -d -p 5432:5432 —name postresql -v Postgres-volume:/var/lib/portgresql/data -e POSTGRES_PASSWORD=portgresPW postgres
docker run -d -p 5433:80 —name pgadmin4 -e PGADMIN_DEFAULT_EMAIL=test@qq.com -e PGADMIN_DEFAULT_PASSWORD=123456 dpage/pgadmin4

数据库管理后台访问pgadmin4:
http://localhost:5433
用户名:test@qq.com
密码:123456
连接数据库

主机名:host.docker.internal(默认)
用户名:portgres(默认)
密码:portgresPW

pnpm install pg config

config/default.json

{
  "db":{
      "user": "postgres",
      "host": "127.0.0.1",
      "database": "postgres",
      "password": "pass123",
      "port": "5432"
  }
}

index.js

import pg from "pg"
import config from "config"
const { Client } = pg
const dbConfig = config.db
const pgClient = new Client(dbConfig)
//1.连接到数据库
pgClient.connect((connectErr) => {
  if (connectErr) {
    console.error(connectErr,"连接失败")
    return
  }
  console.log("连接成功")
//2.执行查询
pgClient.query('SELECT * from tbl_user where username = $1', ['testuser'], (queryErr, res) => {
    if (!queryErr) {
      console.log(res.rows[0])
    } else {
      console.error(queryErr,"查询失败")
    }
//3.关闭连接
    pgClient.end((endErr) => {
      if (endErr) {
        console.error(err,"关闭连接失败")
      }else{
        console.log("关闭连接")
      }
    })
  })
})

package.json

{
	"name": "postgres-demo",
	"version": "1.0.0",
	"description": "",
	"main": "./src/index.js",
	"author": "hjj",
	"license": "ISC",
	"type": "module",
	"scripts": {
		"dev": "node ./src/index.js"
	},
	"dependencies": {
		"config": "^3.3.12",
		"pg": "^8.12.0"
	}
}


http://www.kler.cn/a/370417.html

相关文章:

  • K8s学习
  • 运动相机拍视频过程中摔了,导致录视频打不开怎么办
  • 流量分析复现(第十八届信息安全大赛 第二届长城杯 )
  • 通信协议之多摩川编码器协议
  • 后盾人JS -- 好用的 JavaScript Symbol 类型
  • 计算机网络 (50)两类密码体制
  • 在aws loadbalancer中配置http协议版本
  • BOOT_KEY按键(学习笔记)
  • 玩一玩MySQL服务器配置与管理的游戏(日志快乐版
  • LeetCode6题:Z字形变换(原创)
  • 传统数据仓库升级版:云数据仓库!
  • 传输线临界长度
  • 独立使用 APO 日志模块替代ELK实现日志监控功能
  • Vue学习笔记(八)
  • Matlab 用于处理光谱数据
  • 域权限维持及后渗透密码收集
  • [笔记] ffmpeg docker编译环境搭建
  • uniapp通过id获取div的宽度,高度,位置等(应该是 任意平台都通用 )
  • redis的string是怎么实现的
  • vue3取消跟踪auto-imports.d.ts,components.d.ts这两个文件的变化
  • 新魔百和HG680LC-LY,CM311-1,860av32等热门固件汇总
  • InnoDB 存储引擎<一>InnoDB简介与MySQL存储架构及相关数据结构
  • Oracle 第5章:表与数据操作
  • 【ARM 嵌入式 编译系列 10.4.1 -- ELF 文件结构详细介绍】
  • 大模型系列——AlphaZero/强化学习/MCTS
  • 解决milvus migration 迁移数据到出现数据丢失问题