簡體   English   中英

在Node JS中根據環境變量配置多個postgresql數據庫

[英]Configure multiple postgresql database according to environment variables in Node JS

我正在嘗試為我的應用程序配置兩個 postgresql 數據庫。 一種用於本地/開發環境,一種用於公共/生產環境,后一種將部署在 Heroku 上。

這是應該導出將連接到其數據庫的pool變量的代碼;

const dotenv = require("dotenv");
dotenv.config({ path: "./config.env" });
const app = require("./index");

const Pool = require("pg").Pool;

const pool = new Pool({
  user: "postgres",
  host: "localhost",
  database: "postgres",
  password: "postgres",
  port: 5433,
});

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: {
    rejectUnauthorized: false,
  },
});

app.listen(process.env.PORT || 3000, () => {
  console.log(`App running....`);
});

module.exports = pool;

第一個用於本地連接,第二個用於 heroku 連接。 但我無法配置如何同時使用兩個同名變量,這將根據生產或開發工作。

您可以有一個名為 ENVIRONMENT 的 ENV 變量,該變量可以有兩個值,本地或產品,在代碼中,您應該根據環境變量的值選擇一種配置或另一種配置,我將在此編寫該邏輯方法:

const dotenv = require("dotenv");
dotenv.config({ path: "./config.env" });
const app = require("./index");

const Pool = require("pg").Pool;

const pool = process.env.ENVIRONMENT === 'local' ? new Pool({
  user: "postgres",
  host: "localhost",
  database: "postgres",
  password: "postgres",
  port: 5433,
}) : new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: {
    rejectUnauthorized: false,
  },
});

app.listen(process.env.PORT || 3000, () => {
  console.log(`App running....`);
});

module.exports = pool;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM