无法通过PG-Promise初始化Postgresql数据库

时间:2018-12-25 23:39:42

标签: 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'没有兼容的调用签名。”当我尝试设置初始化选项时,就会出现此错误。任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

这是标准TypeScript配置标志-esModuleInterop。设置为true时,导入语法为import pgPromise from 'pg-promise';,默认为false时,语法为import * as pgPromise from 'pg-promise';

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