【问题标题】:Configure PosgreSQL pool with Typescript使用 Typescript 配置 PostgreSQL 池
【发布时间】:2022-11-09 00:18:48
【问题描述】:

我正在尝试将环境变量包含到我的池对象中(从数据库端口开始)。我的文件是这样的:

import { Pool } from 'pg';
import * as dotenv from 'dotenv';

dotenv.config({ path: __dirname + '/.env' });

console.log(process.env.DATABASE_PORT)

const pool = new Pool({
    user: 'postgres',
    host: 'localhost',
    password: '123456',
    database: 'db',
    port: process.env.DATABASE_PORT
});

export = pool;

我得到“类型'string | undefined'不可分配给类型'number | undefined'。”

我试图用

port: process.env.DATABASE_PORT | 5432

port: Number(process.env.DATABASE_PORT | 5432)

但这些都不起作用。

我考虑过使用“!”,但这似乎不是一个好习惯(也没有工作:b)。

关于我能做些什么来解决这个问题的任何想法?

【问题讨论】:

  • 默认运算符为||。您正在使用不正确的按位或运算符|
  • port: Number(process.env.DATABASE_PORT | 5432) 如上所述,使用|| 而不是|。除此之外,当 5432 已经是数字时,不要尝试将其转换为数字。 port: Number(process.env.DATABASE_PORT) || 5432
  • 谢谢两位,它正在工作:)

标签: node.js typescript postgresql environment-variables


【解决方案1】:

解决方案将是这样的

    import { Pool } from 'pg';
import { config } from 'dotenv';

config({ path: '.env' });

const pool = new Pool({
    user: process.env.PGUSER,
    host: process.env.PGHOST,
    database: process.env.PGPASSWORD,
    password: process.env.PGDATABASE,
    port: parseInt(process.env.DB_PORT || '5432'),
});

export default pool;

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2020-10-11
    • 2016-07-13
    • 2017-10-27
    • 2021-10-12
    相关资源
    最近更新 更多