Node.js (TypeScript) Postgres 客户端似乎没有 运行 在 Pool.query 上插入语句,并且回调没有执行

Node.js (TypeScript) Postgres client does not appear to run insert statement on Pool.query, and callback does not execute

希望这是一个最小的可行示例 ->

routes.ts

import express, { Request, Response } from "express";
import { QueryResult, Pool } from "pg";

const pool = new Pool({
  user: process.env.DOCKER_USER,
  host: "localhost",
  database: process.env.DOCKER_DB,
  password: process.env.DOCKER_PASSWORD,
  port: 5432,
});

const router = express.Router();

router.post("/log/hub", (req: Request, res: Response) => {
  console.log("Made it here!");

  const username = "PLACEHOLDER";
  const json = { a: "b" };
  const now = new Date();
  const cachedId = "12345";

  pool.query(
    "INSERT INTO data_actions (username, json_payload, cache_id, action_timestamp) VALUES (, , , )",
    [username, json, cachedId, now],
    (error: Error, results: QueryResult) => {
      if (error) {
        throw error;
      }
      res.status(201).send(results);
    }
  );
});

export = router;
echo $DOCKER_USER,$DOCKER_DB,$DOCKER_PASSWORD

生产 docker, docker, docker

我已在客户端中验证这些值与上面打印的值匹配,并且它们与在 Docker 容器中为 Postgres 设置的凭据匹配。我可以使用 pgAdmin4 连接到端口 5432 上的数据库并查看我期望的数据库,它看起来像这样:

             List of relations
 Schema |       Name       | Type  | Owner  
--------+------------------+-------+--------
 public | data_actions | table | docker
(1 row)
SELECT * FROM data_actions;

产生

 username | json_payload | cache_id | action_timestamp 
----------+--------------+----------+------------------
(0 rows)

我能够到达 localhost:5000 处的快速路由器端点,因此下游的一切都不是问题。我认为问题在于我如何使用 pg。这里有什么明显的地方吗?我有一种感觉,我遗漏了一些小东西,我正在用头敲击键盘,试图找出问题所在。

EDIT:关系显示 1 行,其中 select 语句 returns 0 行。这是因为我在发帖之前删除了从 pgAdmin 插入的行。对不起,红鲱鱼。

尝试更新 pg 模块。旧版本可能不适用于较新的 Nodejs 版本。