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

10-08 06:56