2013-05-15 3 views
1

У меня есть следующий учебник, как запросить значение от node js и вернуться к запрошенному пользователю, но не удалось.не может получить возвращаемое значение в nodejs?

здесь мой Javascript кода ..

put('id','coment',function(data) { 
     var obja = JSON.parse(data); 
     var items = Object.keys(obja); 
     items.forEach(function(item) { 
      alert(obja[item].field1); //its no result value  
     });       
}) 
function put(id, data, callback) { //call from here to nodejs 
     $.ajax('http://localhost:8000/' + id + '/', { 
      type: 'POST', 
      data: JSON.stringify(data), 
      dataType: 'json', 
      success: function(data) { if (callback) callback(data); }, 
      error : function() { if (callback) callback(false); } 
     }); 
    } 

и здесь мое nodejs

connection.query("SELECT field1,field2,field3 from table", function(e, row) { 
        if(e) 
        { 
         console.log('An error occured: '+e) 
        } 
        else 
        { 
         try{       
          res.write(JSON.stringify(row)); //send value back to user requested 
          res.end(); 
         }catch(ex){ 
          console.log('errror' + ex) ; 
         } 
        } 
}); 

в консоли, запрос было нагрузками нормально, но когда я пытаюсь отправить обратно запрошенный пользователь, он не получает никакого значения ,

Моя проблема в том, почему я не могу отправить обратно запрошенному пользователю?

+1

вы уверены 'row' содержит данные? Попробуйте использовать 'console.log' и посмотрите, что на самом деле находится в' row' – Alan

+2

Вам не нужно 'var obja = JSON.parse (data);' потому что он уже будет проанализирован, потому что вы установите 'dataType: 'json'' , Также возникают ли ошибки в консоли? – loganfsmyth

+0

работать отлично ... спасибо @loganfsmyth – ltvie

ответ

0

Вам не нужен var obja = JSON.parse(data);, потому что он уже будет разобран jQuery из-за dataType: 'json'.

Также кода вы показали obja основе является Array так вместо этого:

var items = Object.keys(obja); 
items.forEach(function(item) { 
    alert(obja[item].field1); 
}); 

Просто сделай это:

obja.forEach(function(row){ 
    alert(row.field1); 
}); 
Смежные вопросы