Как правильно запросить базу данных Postgresql, используя pg с Node.js? - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь запросить базу данных Postgresql, используя Node, Express и модуль pg. Я получаю сообщение об ошибке «Ошибка типа: невозможно прочитать свойство« запрос »из неопределенного» * ​​1001 *

Я посмотрел на веб-сайте модуля 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

1 Ответ

0 голосов
/ 15 января 2019

Вам нужно передать строку подключения в пул при ее создании.

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