在nodejs中无法获得返回值?

时间:2013-05-15 01:08:15

标签: javascript node.js

我有以下教程如何从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) ;
                        }
                    }
}); 

在控制台中,查询正常加载,但是当我尝试发送回用户请求时,它没有任何价值。

我的问题是,为什么我不能发回给用户请求?

1 个答案:

答案 0 :(得分:0)

您不应该需要var obja = JSON.parse(data);,因为jQuery已经设置dataType: 'json'已经解析了它。

同样基于您显示的代码objaArray所以代替此:

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

这样做:

obja.forEach(function(row){  
    alert(row.field1);
});