Я очень новичок в NodeJS. Я пытался написать функцию, которая может просто вернуть значение конфигурации из БД. Возможно, мне придется звонить несколько раз.
В PHP или других синхронных языках я бы использовал следующий код для него
function getConfigValue($configKeyName)
{
// DB READ OPERATIONS
return $confguration_value_fetched_from_db
}
getConfigValue("key1");
getConfigValue("key2");
и т.д.
Но в NodeJS я обнаружил, что выполнять эту операцию слишком сложно из-за асинхронной природы кода. Задав несколько вопросов здесь и потратив часы на изучение Callbacks, Promises, Async / await ключевых слов, будучи новичком, нижеприведенный код - лучший код, который я смог найти.
// Below function defines the 'get' function
var get = async (key) => {
var result = await COLLECTIONNAME.findOne({key}); //MongoDB in backend
return result.value;
}
// Here I am forced to define another async function so that I can await for the get function.
function async anotherfunction()
{
var value_I_am_lookingfor1 = await get("key1");
var value_I_am_lookingfor2 = await get("key2");
}
anotherfunction();
Хотя это может сработать, я не совсем доволен результатом, главным образом потому, что я действительно не хочу делать все свое дальнейшее кодирование на основе извлеченного значения в этой функции anotherfunction (). Все, что я хочу, это получить одно значение? Также мне может понадобиться легко вызвать его из многих мест внутри приложения, а не только отсюда (я планировал разместить его в модуле)
Есть ли лучшие или более простые методы? Или я должен всегда получать значение, которое я хочу, и затем вкладывать его с «тогда». сделать последующую операцию? Я даже сомневаюсь, что фундаментальный подход к самому кодированию NodeJS может быть неправильным.
Может кто-нибудь направить меня?