postgresql - 通过 PG-Promise 初始化 Postgresql 数据库时遇到问题

标签 postgresql typescript pg-promise

我是 Express/Postgresql 的新手,我正在尝试学习它们来创建 Web 应用程序。经过一番摸索,我决定用 TypeScript 开发我的后端。我已成功将所有其他文件从 JavaScript 转换为 TypeScript,但我仍然无法弄清楚如何在 TypeScript 中初始化 pg-promise 连接!

我一直在尝试遵循此处链接中的 TypeScript 指南。 https://github.com/vitaly-t/pg-promise/tree/master/typescript

// Initialize the PostGres database conneciton for use throughout 
the entire application
import {IMain, IDatabase} from 'pg-promise';
import * as pgPromise from 'pg-promise';

const pgp: IMain = pgPromise({
    query(e: any) {
        console.log('QUERY RESULT:', e.query);
    },
    receive(data: any, result: any, e: any) {
        console.log(`DATA FROM QUERY ${e.query} WAS RECEIVED.`);
    }
});

const connection: any = {
    host: 'localhost',
    port: 5432,
    database: 'RushHub',
    user: 'RyanArifin',
    password: null
}
const db: IDatabase<any> = pgp(connection);
export {
    db
};

我目前收到错误“TS2349:无法调用类型缺少调用签名的表达式。类型‘typeof pgPromise’没有兼容的调用签名。”当我尝试设置初始化选项时出现此错误。任何帮助将不胜感激,谢谢!

最佳答案

这是标准的 TypeScript 配置标志 - esModuleInterop。当设置为 true 时,导入语法为 import pgPromise from 'pg-promise';,当设置为 false 时,这是默认的,语法为 import *作为来自“pg-promise”的 pgPromise;

该库为您提供了默认 TypeScript 配置的示例。

关于postgresql - 通过 PG-Promise 初始化 Postgresql 数据库时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53926316/

相关文章:

javascript - 如何在构造函数中调用函数

javascript - SonarQube 显示为 'remove this useless assignment to local variable'

sql - 转换游戏!从 MySQL 到 PostgreSQL 的框架演变

postgresql - PostgresQL 14 物化 View 不更新

oracle - Postgresql 存储过程中基于 session 的全局变量?

javascript - 在 Typescript 中声明类型时,类型 'never[]' 的参数不可分配给类型 'never' 的参数

SQL约束更新问题

postgresql - 参数化查询的查询格式

postgresql - 在带有 pg-promise 查询的模板文字上使用 $1 有好处吗?

node.js - postgres SELECT 查询返回不可用的结果