私のコードで何が起こるかわかりません..ルート内のMySQL dbを照会し、結果をユーザーに表示するNode.jsがあります。私の問題は、ユーザーを要求したページにリダイレクトする前に、クエリを実行してクエリが完了するまでブロックする方法です。呼び出しの前にアラートを追加すると、関数は正常に実行され、応答が速くなります..しかし、アラートを無効にすると、関数は値を返すことができず、フリーズなどの関数..
nodejsに値をリクエストするためのこのユーザーコード
function fred(){ //request function from here to fblue
alert('fred called'); //if i disable alert,the function not return any value
get('id', function(datmovMar) {
var obj = JSON.parse(datmovMar);
var items = Object.keys(obj);
var output='';
items.forEach(function(item) {
output+=obj[item].something+'<br/>';
alert(output);
});
});
}
function get(id, callback) {
$.ajax('http://localhost:8000/' + id + '/', {
type: 'GET',
dataType: 'json',
success: function(data) { if ( callback ) callback(data); },
error : function() { if ( callback ) callback(null); }
});
}
そして、このコードはノードjsにあります
fblue(function(datmovMar){ //call function from here
res.write(JSON.stringify(datmovMar));
res.end('\n');
});
function fblue(callback){
var query = connection.query('SELECT something from table'),
pinMarker = [];
query
.on('error', function(err) {
console.log( err );
updateSockets( err );
})
.on('result', function( user ) {
pinMarker.push( user );
})
.on('end',function(){
if(connectionsArray.length) {
jsonStringx = JSON.stringify( pinMarker );
callback(jsonStringx);
}
});
}
アラートが機能を無効にすると、正常に実行できない理由がわかりませんか?
助けてください...
ありがとう