私は Javascript の初心者で、DB から取得した itens の配列を返す関数を作成しようとしていました。最初にこれを試しました:
function getItens(userId){
var arr = new Array;
var result;
var connection = mysql.createConnection({
host : 'localhost',
user : 'XXXXXX',
password : 'XXXXXX',
database : 'XXXXXX',
});
connection.connect();
connection.query('SELECT * from itens where userId = '+ userId function(err, rows, fields){
if (err) throw err;
arr = rows.slice()
});
return arr;
connection.end();
}
次に、そこにスコープの問題があることに気付き、いくつかの調査の後、次のような静的変数をエミュレートしようとしました。
function getItens(userId){
(function (){
var resultado;
Result = function(valor) { resultado = valor; };
Result.prototype.getResultado = function (){return resultado};
Result.prototype.setResultado = function (valor){ resultado = valor; };
})();
var ar = new Result([]);
var connection = mysql.createConnection({
host : 'localhost',
user : 'XXXXXX',
password : 'XXXXXX',
database : 'XXXXXX',
});
connection.connect();
connection.query('SELECT * from itens where userId = '+ userId , function(err, rows, fields){
if (err) throw err;
ar.setResultado(rows.slice());
});
return ar.getResultado();
connection.end();
}
しかし、うまくいきませんでした。何が間違っていますか?