我正在尝试根据应用程序是在本地运行还是在服务器上运行,为 sequelize
分配不同的值。这是我的代码:
const sequelize = production
? sequelizeHeroku.connect(Sequelize)
: new Sequelize(database, user, password, {
host,
dialect: "mysql",
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000
}
});
这在本地不起作用,因为当我记录
sequelize
的值时,它是 false
。但是,如果我尝试像这样分配变量:const sequelize = new Sequelize(database, user, password, {
host,
dialect: "mysql",
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000
}
});
它工作得很好。我还检查了
console.log(production == true)
打印出 false
。我究竟做错了什么?
最佳答案
最好使用 NODE_ENV
环境变量。例如。index.ts
:
import { Sequelize } from 'sequelize';
import assert from 'assert';
const database = 'sample';
const user = 'testuser';
const password = 'testpass';
const host = '127.0.0.1';
const sequelize =
process.env.NODE_ENV === 'production'
? 'sequelize heroku'
: new Sequelize(database, user, password, {
host,
dialect: 'mysql',
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000,
},
});
assert(process.env.NODE_ENV === 'production', 'NODE_ENV should be "production"');
assert(sequelize === 'sequelize heroku', 'Should use heroku sequelize in production environment');
在
production
环境中执行代码:NODE_ENV=production npx ts-node ./index.ts
没有断言失败。它按预期工作。
关于javascript - 在js中有条件地分配const值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59695100/