如何使用带 Node.js 的 pg 正确查询 Postgresql 数据库?
How to properly query Postgresql database using pg with Node.js?
我正在尝试使用 Node、Express 和 pg 模块查询 Postgresql 数据库。我收到错误 "TypeError: Cannot read property 'query' of undefined"
我查看了 node-postgres 模块网站以了解正确的语法以及其他各种网站。我知道用于启用 pg 的语法在 pg 版本 6.3.0 之后发生了变化。
const express = require("express");
const path = require("path");
const bodyparser = require("body-parser");
const consolidate = require("consolidate");
const dust = require("dustjs-helpers");
const pg = require("pg");
var pool = new pg.Pool();
let app = express();
let connect = "postgres://postgres:secret@localhost:5432/my_database";
app.engine("dust", consolidate.dust);
app.set("view engine", "dust");
app.set("views", __dirname + "/views");
app.use(express.static(path.join(__dirname, "public")));
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({extended: false}));
app.get("/", function(request, response, next) {
pool.connect(function(err, client, done) {
if (err) {
console.log(`Not able to get a connection: ${err}.`);
response.status(400).send(err);
}
client.query("SELECT * FROM recipes", function(err, result) {
done();
});
pool.end();
});
});
app.listen(3000, () => {
console.log("Server running on port: 3000");
});
转到 http://server_ip:3000 应该显示一个网页,而不是节点崩溃并出现此错误:
client.query("SELECT * FROM recipes", function(err, result) {
^
TypeError: Cannot read property 'query' of undefined
实例化时需要将连接字符串传递给池。
var pool = new pg.Pool({
connectionString: 'postgres://postgres:secret@localhost:5432/my_database',
});
我正在尝试使用 Node、Express 和 pg 模块查询 Postgresql 数据库。我收到错误 "TypeError: Cannot read property 'query' of undefined"
我查看了 node-postgres 模块网站以了解正确的语法以及其他各种网站。我知道用于启用 pg 的语法在 pg 版本 6.3.0 之后发生了变化。
const express = require("express");
const path = require("path");
const bodyparser = require("body-parser");
const consolidate = require("consolidate");
const dust = require("dustjs-helpers");
const pg = require("pg");
var pool = new pg.Pool();
let app = express();
let connect = "postgres://postgres:secret@localhost:5432/my_database";
app.engine("dust", consolidate.dust);
app.set("view engine", "dust");
app.set("views", __dirname + "/views");
app.use(express.static(path.join(__dirname, "public")));
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({extended: false}));
app.get("/", function(request, response, next) {
pool.connect(function(err, client, done) {
if (err) {
console.log(`Not able to get a connection: ${err}.`);
response.status(400).send(err);
}
client.query("SELECT * FROM recipes", function(err, result) {
done();
});
pool.end();
});
});
app.listen(3000, () => {
console.log("Server running on port: 3000");
});
转到 http://server_ip:3000 应该显示一个网页,而不是节点崩溃并出现此错误:
client.query("SELECT * FROM recipes", function(err, result) {
^
TypeError: Cannot read property 'query' of undefined
实例化时需要将连接字符串传递给池。
var pool = new pg.Pool({
connectionString: 'postgres://postgres:secret@localhost:5432/my_database',
});