2017-10-16 97 views
2

我想给const指定一些东西,具体取决于设置了什么样的环境变量,但我不确定正确的方法。这是我有:将条件分配给常量的正确方法是什么?

const pool; //Technically this is incorrect right ? 

if(process.env.PGUSER){ 
    pool = new Pool; 
}else if(process.env.DATABASE_URL){ 
    pool = new Pool({ 
     connectionString: process.env.DATABASE_URL 
    }); 
} 

什么是最初声明池的正确方法?

+1

您必须在声明它的同一个语句中指定'const'值,即'const pool =“value”''。但你可以这样做'const pool = process.env.PGUSER?新的池:process.env.DATABASE_URL? new Pool({connectionString:process.env.DATABASE_URL}):null;' – Krusader

+2

因为在这个代码中'pool'可能永远不会被分配任何东西,它根本就不是'const'。 – deceze

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const - 你必须立即分配,但它可以是一个表达式(包括函数调用)。 – tevemadar

回答

2

您可以使用三元结构并分配想要的实例。

const pool = process.env.PGUSER 
    ? new Pool 
    : new Pool({ 
     connectionString: process.env.DATABASE_URL 
    }); 
相关问题