javascript - endingItem.callback 不是一个函数吗?

标签 javascript node.js postgresql

我试图查看表格的第一行,但收到​​错误

类型错误:pendingItem.callback 不是函数 在 client.connect

var express = require("express");
const {Pool} = require("pg");
var app = express();
var conStr = "postgres://postgres:password@localhost:5432/postgres";
const pool = new Pool();

app.get("/", function(req, res, next) {
  pool.connect(conStr, function(err, client, done) {
    if (err) {
        console.log("not able to get connection " + err);
        res.status(400).send(err);
    }
    client.query("SELECT * FROM Users where id= $1", [1], function(err, result) {
      done();
      if (err) {
          console.log(err);
          res.status(400).send(err);
      }
      res.status(200).send(result.rows);
    });
  });
});

最佳答案

在 Postgres 连接 Pool 上使用 connectionString

首先,如果您选择使用connectionURI连接到Postgres,则需要使用connectionString参数初始化Pool:

const pool = new Pool({
  connectionString: connectionString,
})

然后在调用pool.connect时只需传递回调函数即可:

pool.connect((err, client, release) => {...});

检查有关池化的文档以及使用 node-postgres 包连接到 Postgres 的不同方法:herehere

<小时/>

在你的情况下,它应该看起来像这样:

var express = require("express");
const pg = require("pg");
const {Pool} = require("pg");
var app = express();
var conStr = "postgres://postgres:password@localhost:5432/postgres";
const pool = new Pool({
    connectionString: conStr
});

app.get("/", function(req, res, next) {
    pool.connect(function(err, client, done) {
        if (err) {
            console.log("not able to get connection " + err);
            res.status(400).send(err);
        }
        client.query("SELECT * FROM Users where id= $1", [1], function(err, result) {
            done();
            if (err) {
                console.log(err);
                res.status(400).send(err);
            }
            res.status(200).send(result.rows);
        });
    });
});

关于javascript - endingItem.callback 不是一个函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127223/

相关文章:

javascript - 根据一个属性的自定义优先级对数组进行排序

http - 如何在 Node 中的 http.request() 上设置超时?

sql - 将一个表的行连同一个单独的值插入到postgresql中的另一个表中

node.js - PurgeCSS 和 Tailwind CSS,如何使用命令行界面保留响应类?

java - 带有证书 : how to set client certificate and key? 的 Nifi 和 Postgresql

sql - 带有条件的多个 INSERT 和 SELECT 在一个请求中返回

Javascript 原型(prototype)行为

javascript - 如何用 'null' 字符串替换 javaScript 对象中的所有空值?

javascript - 使用jquery非实时更改图像

node.js - Node JS 不断收到无法加载资源错误消息