Я пытаюсь подключиться к базе данных MYSQL и получить все адреса электронной почты в таблице. Я использую обещания, и я попытался установить глобальный массив, который в конечном итоге будет содержать адреса. Однако после запуска моего кода он пуст. Мой код:
var mysql = require('mysql');
var async = require('async');
function DBconnect(){
return new Promise((resolve,reject)=>{
resolve(
mysql.createConnection({
host:"0.0.0.0",
user: "mysqldbadmin",
password: "mypassword",
database: "myDB"
})
)
})
}
var emailArr = new Array(); //winds up empty, should not be
DBconnect().then(result =>{
var validUsers = new Array();
result.connect(function(err){
if (err){
throw err;
}
result.query(" select users_email from site_users left join site_usermeta on ( site_users.id = site_usermeta.user_id) where (meta_value LIKE '%spec1%' OR meta_value LIKE '%spec2%') and meta_key=\"site_capabilities\" ",
function(err, res, fields){
if(err)
throw err;
var i = 0;
for (i = 0; i < res.length; i++){
validUsers[i] = res[i].users_email;
}
console.log(validUsers); // THIS prints out what I need
emailArr = validUsers;
result.end(function(err){});
});
})
})
console.log(emailArr);
Мне нужно emailArr
для хранения строковых значений;Они понадобятся мне позже в моем сценарии. Как мне это сделать?