これは、データベースを管理するために jquery と nedb を操作する、私の node-webkit アプリの JavaScript コードです。
librodb.find({_id: docs[i].libro}, function (err, bookdoc) {
window.titulo = bookdoc[0].titulo;
window.ISBN = bookdoc[0].ISBN;
});
これは、データベースからエントリを読み取り、それらを配列 (bookdoc) に返します。
for (var i = 0; i < docs.length; i++) {
librodb.find({_id: docs[i].libro}, function (err, bookdoc) {
window.titulo = bookdoc[0].titulo;
window.ISBN = bookdoc[0].ISBN;
});
switch(docs[i].razon){
case 1:
$(".listed").append('<li><i class="fa fa-institution"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') producidos.</li>');
break;
case 2:
libreriadb.find({_id: docs[i].libreria}, function (err, librarydoc) {
window.nombre = librarydoc[0].nombre;
});
$(".listed").append('<li><i class="fa fa-institution"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') devueltos por Libreria ("'+window.nombre+'"), recibo '+docs[i].documento+'.</li>');
break;
case 3:
$(".listed").append('<li><i class="fa fa-question"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') en stock ingresaron por "'+docs[i].descripcion+'".</li>');
break;
}
}
問題は、変数 window.titulo と window.ISBN が読み取りデータベース関数の内部で定義されているが、外部には定義されていないことです。
私が使用する場合
window.変数名=
de librodb.find 関数の後に変数を呼び出すと、両方とも「未定義」が返されます。
私が使用する場合
var 変数名=
また
変数名=
実行は次のエラーで停止します:「ReferenceError:タイトルが定義されていません」(スイッチから呼び出そうとした場所)。
3 つのケースすべてで、librodb.find 関数内のアラートは、返されるはずの値を返します。
変数を定義または呼び出すにはどうすればよいですか?