我对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" :{
}
});
}
}
});
});
您只需要传递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
});
}
}