javascript - 在js中有条件地分配const值

标签 javascript node.js if-statement sequelize.js

我正在尝试根据应用程序是在本地运行还是在服务器上运行,为 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/

相关文章:

javascript - AngularJS - 不使用 Angular 模板动态添加指令

node.js - Facebook 失败时 Passport 不会重定向到 'failureRedirect'

java - 在实现 if else 进行比较时,我应该先使用 != 还是 ==

Javascript 有效地从 JSON 构建表并将其添加到 DOM

javascript - 点击圆形图像时想要更改 div

node.js - EJS 脚本和样式表部分

python - 如何简化这个很长的 if 语句?

python,if/elif/else 语法被注释分割?

javascript - JSON 安全最佳实践?

javascript - Elasticsearch NodeJS : How to return result