提问者:小点点

在节点js中发送多个JSON对象列表


我对node.js不熟悉,有人能告诉我如何使用res.send()方法发送多个数据库行吗?在上面的代码中,我从数据库中提取了多个行,但当我将这些数据放入res.send()中时,它不能运行for循环,并给出类似“throw err;//Rethrow non-MySQL errors^”的错误

发送后无法设置标头。“

app.post(“/GetUserList.htm”,function(req,res){

console.log("Controller called..");

var Obj=req.body.json;
var data=JSON.parse(Obj);
console.log("Json is: " + data[0].username);
var query="SELECT * FROM app_user";
connect.connection.query(query,function(err,rows){
    if(err){
        console.log("Error is: "+err);
    }else{
        var jsonObject={};
        var key = 'detail';
        jsonObject[key] = [];
        for (var i = 0; i < rows.length; i++) { 
            console.log("UserName is :" + rows[i].SSO_ID);
            var details={
                "username":rows[i].SSO_ID,
                "PhoneNO" :rows[i].Wallet_Number
        };
            jsonObject[key].push(details);
            //JSON.stringify(jsonObject);
            console.log("JSON IS: " + jsonObject[key].userName);
            res.send({
            "data" :{   
        }
        }); 
        }

    }
});

});


共1个答案

匿名用户

您只需要传递jsonObject变量作为响应。最好在响应中有更多的参数来识别响应类型。

connect.connection.query(query,function(err,rows){
 if(err){
        console.log("Error is: "+err);
        res.send({
            success: false,
            code: 401,
            error : error
        });
    }else{
        var jsonObject={};
        var key = 'detail';
        jsonObject[key] = [];
        for (var i = 0; i < rows.length; i++) { 
            console.log("UserName is :" + rows[i].SSO_ID);
            var details={
                "username":rows[i].SSO_ID,
                "PhoneNO" :rows[i].Wallet_Number
            };
            jsonObject[key].push(details);
            console.log("loop executes "+ i +"th time.."+rows[i].SSO_ID);
            //JSON.stringify(jsonObject);       
        }
        res.send({
            success: true,
            code: 200,
            data :jsonObject
        });
    }
}