我有以下教程如何从node js
请求值并返回给用户请求,但未成功。
这是我的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) ;
}
}
});
在控制台中,查询已正常加载,但是当我尝试发送回用户请求时,它没有任何价值。
我的问题是,为什么我不能发送回用户请求?
最佳答案
您不需要var obja = JSON.parse(data);
,因为已设置dataType: 'json'
,因此jQuery已经对其进行了解析。
同样,根据您显示的代码,obja
是一个Array
,所以请不要这样:
var items = Object.keys(obja);
items.forEach(function(item) {
alert(obja[item].field1);
});
只是这样做:
obja.forEach(function(row){
alert(row.field1);
});