Postgres查询未按预期在Node.js中执行

时间:2020-04-20 13:14:34

标签: node.js postgresql typescript google-cloud-platform

我正在尝试在Typescript中创建一个API,以从Google Cloud Postgres数据库中获取数据。下面是我正在使用的数据库连接脚本(databaseConnection.ts):

require('dotenv').config();
import {Client} from "pg";

const client = new Client({
    user: process.env.DB_USER,
    host: process.env.DB_HOST,
    database: process.env.DB_DATABASE,
    password: process.env.DB_PASS
});

async function createConnection(){
    await client.connect(function(err: Error) {
        if (err) {
            console.error(`Error connecting:  ${err.stack}`);
            return;
        }
        console.log('Database connected successfully');
    });
}

createConnection();

module.exports = client;

并且我在存储库中导入了数据库连接实例:

import { IDatabaseRepository } from "../interfaces/IDatabaseRepository";
const connection = require('../databaseConnection');

export class DatabaseRepository implements IDatabaseRepository {

    getCastleNames(){
        let castles: string[];
        console.log(connection);
        connection.query(
            'SELECT type FROM castles',
            function(err: Error, result: any) {
                if (err){
                    console.log(err.stack);
                    throw err;
                }
                console.log(castles);
                castles = result.rows;
                connection.end();
            }
        );        
        return castles!; 
    }
}

这里的方法connection.query实际上从未被调用,因此即使连接仍然有效,也总是返回null。当我尝试直接在databaseConnection.ts中查询内容时,它可以正常工作,但如果我是从存储库中查询,则无法正常工作。

关于发生了什么问题或必须执行某些操作的任何想法,但我实际上错过了?预先谢谢您!

0 个答案:

没有答案