【问题标题】:How to properly query Postgresql database using pg with Node.js?如何使用 pg 和 Node.js 正确查询 Postgresql 数据库?
【发布时间】:2019-01-15 08:03:57
【问题描述】:

我正在尝试使用 Node、Express 和 pg 模块查询 Postgresql 数据库。我收到错误“TypeError:无法读取未定义的属性'查询'”

我查看了 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

【问题讨论】:

  • 嗨,欢迎来到这里...您应该阅读文档:node-postgres.com ...错误说客户端未定义...因为您没有定义它...。文档...

标签: node.js postgresql express pg


【解决方案1】:

您需要在实例化时将连接字符串传递给池。

var pool = new pg.Pool({
    connectionString: 'postgres://postgres:secret@localhost:5432/my_database',
});

【讨论】:

  • 是的,迈克。有用。我用const client = new Client({ connectionString: ........ });
猜你喜欢
  • 2013-06-23
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多