我试图查看表格的第一行,但收到错误
类型错误: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 的不同方法:here和 here
在你的情况下,它应该看起来像这样:
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/