Node.js управляется событиями, что означает, что большинство функций являются асинхронными.Функция execute
не возвращает никакого значения, поскольку возвращаемое значение находится в анонимной функции, объявленной в качестве первого аргумента, причем эта функция будет вызываться только после выполнения запроса и возвращения значения из базы данных.Таким образом, ваша переменная result
не содержит никакого значения, поскольку возвращать пока нечего.
** EDIT **
Даже после редактирования строка гдеВы регистрируете переменную result
, которая выполняется до , вы присваиваете ей rows
, потому что анонимная функция выполняется только , позже , когда запрос завершен.