Какую альтернативу bcrypt использовать с узлом?

Для этого нет единственного решения (ну, есть eval, но не стоит серьезно относиться к этому). Доступ к глобальным переменным возможен динамически через window, но это не работает для переменных, локальных для функции.

Почти всегда есть лучшее решение, чем использование переменных переменных! Вместо этого вы должны смотреть на структуры данных и выбирать правильную для своей проблемы.

Если у вас есть фиксированный набор имен, например

// BAD
var foo = 42;
var bar = 21;

var key = 'foo';
console.log(eval(key));

сохранить эти имена / значения в качестве свойств объекта и использовать нотацию скобки для динамического поиска:

// GOOD
var obj = {
  foo: 42,
  bar: 21,
};

var key = 'foo';
console.log(obj[key]);

Если у вас есть «последовательные» нумерованные переменные, такие как

// BAD
var foo1 = 'foo';
var foo2 = 'bar';
var foo3 = 'baz';

var index = 1;
console.log(eval('foo' + index));

, тогда вы должны использовать массив и просто использовать индекс для доступа к соответствующему значению:

// GOOD
var foos = ['foo', 'bar', 'baz'];
var index = 1;
console.log(foos[index - 1]);

18
задан Scott Arciszewski 12 October 2019 в 07:34
поделиться