我正在尝试在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
中查询内容时,它可以正常工作,但如果我是从存储库中查询,则无法正常工作。
关于发生了什么问题或必须执行某些操作的任何想法,但我实际上错过了?预先谢谢您!