node.js — Javascript eval ReferenceError не определен

Javascript eval ReferenceError не определен

Я создавал динамическую переменную из строки в моем конструкторе. Это работало нормально, но в конце концов я получил эту ошибку из ниоткуда. Я не делал ничего, что могло бы сломать систему, и переменные определены как нормальные. Например, lang будет en а str будет nep_tag и я хочу nep_tag его, чтобы получить en.nep_tag но мне нужно, чтобы он был гибким, чтобы у меня был другой lang {amp}amp; str, такой как fr {amp}amp; nep_tag2 . Любая помощь будет принята с благодарностью ^^

ОШИБКА:

undefined 1:
en.nep_tag
^
ReferenceError: en не определен

Вот код

 module.exports = Language; function Language(lang) { this.get = function(str) { return eval(lang   '.'   str); } } 

Я попробовал другой метод, и он дает мне ту же ошибку:

 let func = new Function(lang   '.'   str); return func(); 

Все str хранятся в нескольких файлах, таких как lang_EN и т.д., например:

 en = { nep_tag: "My message here", ... } 

Это было бы то же самое в lang_FR:

 fr = { nep_tag: "Mon message ici", ... } 

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

 const Language = require("../../util/languages/language.js"); const lang = new Language(row.language); // en/fr/... are stored in a database and i made sure they were valid lang.get("nep_tag"); 

Спасибо за чтение :)

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector