Node.js / Postgresql соединение с базой данных возвращает неопределенное - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть база данных PostgreSQL, размещенная на Heroku.Вот как я к нему подключаюсь:

//sql_conn.js
const pgp = require('pg-promise')();
pgp.pg.defaults.ssl = true;

const db = pgp('postgres://connection_string_redacted');

if(!db) {
    console.log("Database setup unsuccessful.");
    process.exit(1);
}

module.exports = db;

И я пытаюсь получить к нему доступ здесь:

//test-endpoint.js
const express = require('express');
const app = express();
const router = express.Router();
let db = require('../utils/sql_conn').db;
const bp = require('body-parser');
router.use(bp.json());

router.get("/", (req, res) => {
    let query = "SELECT * FROM table;";
    db.manyOrNone(query)
        .then((rows) => {
            res.send({
                success: true,
                result: rows
            })
        }).catch((err) => {
            res.send({
                success: false,
                error: err
            })
        });
});

module.exports = router;

Я проверил, что строка подключения верна, база данных работает на Herokuи путь к оператору require указан правильно, но при вызове test-endpoint.js из браузера возвращается:

TypeError: Cannot read property 'manyOrNone' of undefined

Почему база данных не определена?

1 Ответ

0 голосов
/ 23 февраля 2019

Это похоже на проблему импорта / экспорта.Попробуйте заменить эту строку:

let db = require('../utils/sql_conn').db;

на

const db = require('../utils/sql_conn');

И с вами все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...