1

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

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

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

4

1 回答 1

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);
});
于 2013-05-15T01:41:12.917 回答