Я пытаюсь поместить динамический вызов функции в Node.js, чтобы избежать бесконечного списка вариантов переключения.
Вот экземпляр файла, к которому я хочу обратиться:
var Object = require('../models/Object'); // it's a classic mongoose Schema's object
Вот моя динамическая функция:
/***** post words *****/
router.post('/words', function (req, res) {
var word = req.body ;
var Theme = req.body.theme
[Theme].add[Theme](word, function(err, words) {
if(err) {
res.json(err);
throw err;
}
return res.json(words);
})
})
Мы предполагаем случай, когда object.name имеет значение "Object".
Функция, которую я хочу построить, должна вызывать метод addPost в другом файле. Чтобы динамически вызывать эти файлы, я подготовил механизм вычисления свойства имени. Поэтому я всегда вызываю файл, соответствующий моей потребности. Если мне потребовался объект и пользовательская публикация со значением категории объекта, хорошо, он перейдет в файл объекта, чтобы вычислить публикацию в направлении хорошего пункта назначения. Поэтому мое вычисленное свойство name выглядит следующим образом:
console.log(req.body.name) // > "Object"
Name = req.body.name
console.log(Name) // > "Object"
Хорошо, теперь
Когда я явно ввожу имя объекта для вызова функции, как показано ниже:
Object.functionObject()
функция работает нормально.
НО, если я использую вызов с динамическим значением, например:
[Name].functionOf[Name]()
функция возвращает меня:
TypeError: Невозможно прочитать свойство undefined
Также
Я пробовал с ${Name}
, но моя консоль возвращает меня:
TypeError: console.log (...) не является функцией
Я пытался установить ES6 на тот же результат на стороне Node.js.
Как это возможно, так как console.log возвращает мне большое значение?