[英]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.