javascript - jshint es6 const if else block 错误

标签 javascript node.js ecmascript-6 jshint

使用此代码:

const db        = {};
if (config.use_env_variable) {
  const sequelize = new Sequelize(process.env[config.use_env_variable]);
} else {
  const sequelize = new Sequelize(config.database, config.username, config.password, config);
}
db.sequelize = sequelize;

我遇到了错误

'sequelize' is not defined

有没有办法使用 const 并避免诸如解决方法?

喜欢

let sequelize;
if (config.use_env_variable) {
   sequelize = new Sequelize(process.env[config.use_env_variable]);
} else {
   sequelize = new Sequelize(config.database, config.username, config.password, config);
}

最佳答案

您可以重构代码以使用函数来创建实际对象,如下所示

function SequelizeFactory(config) {
  if (config.use_env_variable) {
    return new Sequelize(process.env[config.use_env_variable]);
  } else {
    return new Sequelize(config.database,
                         config.username,
                         config.password,
                         config);
  }
}

然后将调用函数的结果分配给sequelize

const sequelize = SequelizeFactory(config);

关于javascript - jshint es6 const if else block 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33176720/

相关文章:

javascript - 2 个 Action 链接到同一个 onClick 函数

javascript - 检查 JS 变量是否为 null 和 true

node.js - 如何通过 HTTPS 将私有(private) Azure 存储库导入项目?

node.js - NodeJS和ExpressJS并行处理rest请求

node.js - 在MongoDB中创建索引但每次都会出现错误: unable to find index for $geoNear query

javascript - 与导出默认值一起使用时, "=>"在 javascript 中意味着什么?

ecmascript-6 - 用于导出类函数的 es6 访问器

javascript - 生成 0 到 'x' 之间的唯一随机数(整数)

javascript - 将包装函数应用于导入的函数

javascript - 使用 AJAX、PHP 和 MySQL 绘制图表线条